除了内置参数,AnQiCMS全局设置中如何添加自定义参数并进行模板调用?

作为一名资深安企CMS网站运营人员,我深知内容管理系统不仅要满足基本的内容发布需求,更要具备高度的灵活性和可扩展性,以适应不断变化的运营策略。在AnQiCMS中,除了系统内置的各种参数,我们常常需要根据具体的业务场景和网站设计,添加一些自定义的全局参数,以便在模板中灵活调用,实现个性化的内容展示。

在AnQiCMS后台添加自定义全局参数

AnQiCMS提供了一种直观简便的方式来扩展全局配置,允许运营者在不修改核心代码的情况下,自定义网站级的参数。这些自定义参数可以集中管理,并在网站的任何页面模板中按需引用。

要添加自定义全局参数,您需要登录AnQiCMS的后台管理界面,并导航至“后台设置”下的“全局功能设置”或“联系方式设置”模块。在这两个模块的底部,您会找到一个名为“自定义设置参数”的区域。

在这里,您可以点击“增加”按钮来添加新的自定义参数。每个自定义参数包含三个核心字段:

  • 参数名 (Parameter Name):这是在模板中用于调用该参数的唯一标识符。建议使用英文小写字母,并遵循驼峰命名法(例如 customTitle, companySlogan),以保持代码的整洁性和可读性。系统会自动将输入的字母转换为驼峰命名。
  • 参数值 (Parameter Value):这是您希望该参数实际输出的内容。它可以是任何文本、URL、数字或其他信息。
  • 备注 (Remark):这个字段不会在前端模板中显示,其作用是帮助您更好地理解和管理这些自定义参数的用途。一个清晰的备注能够显著提高团队协作效率和未来的维护便利性。

例如,如果您在“全局功能设置”中添加一个名为HelpUrl的参数,其值为https://www.anqicms.com/help,并添加备注“指向帮助文档的链接”,那么这个自定义参数就已经成功添加并可在全站范围内使用了。同样,如果您在“联系方式设置”中添加一个名为WhatsApp的参数,用于展示WhatsApp联系方式,也是如此操作。

在AnQiCMS模板中调用自定义参数

一旦自定义参数在后台设置完毕,就可以在网站模板中通过特定的标签进行调用。AnQiCMS的模板引擎支持Django模板引擎语法,使得参数调用变得非常直观。

对于在“全局功能设置”中添加的自定义参数,我们主要使用system标签进行调用。该标签专门用于获取系统级别的配置信息,包括内置参数和您自定义的全局参数。

例如,要调用前面在“全局功能设置”中添加的HelpUrl自定义参数,可以使用以下模板代码:

{# 直接输出自定义参数的值 #}
<a href="{% system with name="HelpUrl" %}" target="_blank">帮助中心</a>

{# 将自定义参数赋值给一个变量后输出,适用于更复杂的逻辑处理 #}
{% system helpLink with name="HelpUrl" %}
<p>访问我们的帮助页面:<a href="{{helpLink}}" target="_blank">{{helpLink}}</a></p>

同样地,对于在“联系方式设置”中添加的自定义参数,例如WhatsApp,则使用contact标签进行调用。contact标签用于获取所有与网站联系方式相关的配置。

调用WhatsApp自定义参数的模板代码示例如下:

{# 直接输出自定义的WhatsApp联系方式 #}
<p>WhatsApp联系方式:{% contact with name="WhatsApp" %}</p>

{# 将自定义参数赋值给一个变量后输出 #}
{% contact whatsappNumber with name="WhatsApp" %}
<p>紧急联系请拨打:{{whatsappNumber}}</p>

通过这种方式,您可以将网站中需要频繁更新或需要集中管理的文本、链接等信息提取出来,作为自定义参数进行配置。这不仅降低了模板维护的复杂度,也提高了网站内容的更新效率和运营的灵活性。当需要修改某个全局信息时,只需在后台修改一次参数值,而无需深入到多个模板文件中逐一查找和修改。

常见问题解答

Q1: 修改了自定义参数后,为什么前端页面没有立即更新?

A1: AnQiCMS为了提高网站性能,会使用缓存来存储配置信息。在您修改了后台的自定义参数后,可能需要清除系统缓存才能使更改立即生效。您可以在AnQiCMS后台找到“更新缓存”功能,点击执行即可。

Q2: 我可以在自定义参数的“参数值”中填写HTML代码吗?

A2: 是的,您可以。自定义参数的“参数值”字段支持输入HTML代码。但在模板中调用时,如果该HTML代码包含需要解释的标签(例如<script><a>),您可能需要使用|safe过滤器来告知模板引擎不要对其进行转义,以确保HTML代码能够正确渲染。例如:{{customHtmlVar|safe}}

Q3: 如果我需要根据不同的页面或内容模型显示不同的自定义参数,应该如何处理?

A3: 全局自定义参数适用于在全站范围内保持一致的信息。如果您的需求是针对特定页面、分类或内容模型展示不同的参数,那么更推荐使用AnQiCMS的内容模型自定义字段、分类自定义字段或单页面自定义字段功能。这些字段允许您为特定的内容对象添加独有的参数,并在其对应的详情页或列表页模板中调用,从而实现更精细化的内容控制。