在安企CMS中,网站的灵活性和可维护性是其核心优势之一。内容运营者和开发者常常需要在不修改模板代码的情况下,动态调整网站的一些全局信息,比如公司名称、联系电话,甚至是某些营销活动链接。这些在后台自定义的全局参数,正是实现这种需求的关键。

今天,我们就来深入了解如何在安企CMS的模板中,轻松获取并展示这些在后台配置的自定义全局参数。

为什么需要全局参数?

想象一下,如果您的网站需要更改公司名称或电话号码,而这些信息硬编码在几十个模板文件中,那么每次修改都将是一项耗时且容易出错的工作。全局参数的出现,正是为了解决这样的问题。它允许您在网站后台统一管理这些常用信息,当信息发生变化时,只需在后台修改一次,所有调用了该参数的页面都会自动更新,大大提升了运营效率和网站的可维护性。

后台如何设置全局参数?

安企CMS提供了几个地方供您设置全局参数,其中最常用的是“后台设置”下的“全局功能设置”和“联系方式设置”。

  1. 全局功能设置 在“后台设置” -> “全局功能设置”中,除了网站名称、网站Logo、备案号等系统内置的参数外,您还可以通过“自定义设置参数”来添加更多专属的全局参数。

    • 点击“添加参数”,输入“参数名”(这是在模板中调用时使用的唯一标识,建议使用英文,系统会自动将其转换为驼峰命名),填入“参数值”(您希望显示的内容),并添加“备注”方便日后管理。例如,您可以添加一个名为 HelpUrl 的参数,值为 https://www.anqicms.com/help
  2. 联系方式设置 类似地,“后台设置” -> “联系方式设置”也支持自定义参数。这里通常用于管理电话、邮箱、微信等联系信息。

    • 您可以添加诸如 WhatsApp 这样的自定义参数,并填入您的WhatsApp联系号码。

这些设置完成后,这些自定义参数就如同系统内置参数一样,可以在前端模板中被灵活调用。

在模板中获取全局参数

安企CMS的模板引擎支持类似Django的标签语法,您可以通过特定的标签来获取后台设置的全局参数。核心标签主要有 systemcontactdiy

1. 获取系统级全局参数(system 标签)

system 标签专门用于获取在“全局功能设置”中配置的参数,无论是内置的还是自定义的。

基本用法: {% system 变量名称 with name="字段名称" %}

这里,字段名称就是您在后台设置的“参数名”。

  • 直接输出内置参数: 如果您想在页面底部显示备案号,可以直接这样写:

    <p><a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">{% system with name="SiteIcp" %}</a></p>
    

    这里,SiteIcp是安企CMS内置的备案号参数名。

  • 输出自定义参数并赋给变量: 假设您在后台全局设置中定义了一个名为 HelpUrl 的自定义参数,您可以在模板中这样获取并使用它:

    {% system helpPageUrl with name="HelpUrl" %}
    <a href="{{ helpPageUrl }}">查看帮助文档</a>
    

    通过 with 关键字,您可以将获取到的参数值赋值给 helpPageUrl 这个变量,然后在模板中多次使用。

  • 获取当前年份: 此外,system 标签还有一个辅助功能,就是获取当前年份,这在版权信息中非常实用:

    <p>&copy; {% now "2006" %} {{ siteName }}. All Rights Reserved.</p>
    

    这里 {% now "2006" %} 会显示当前年份。

2. 获取联系方式全局参数(contact 标签)

contact 标签用于获取在“联系方式设置”中配置的参数,包括内置的联系方式和您自定义的参数。

基本用法: {% contact 变量名称 with name="字段名称" %}

  • 直接输出内置联系电话:

    <span>联系电话:{% contact with name="Cellphone" %}</span>
    

    这里,Cellphone是安企CMS内置的联系电话参数名。

  • 输出自定义WhatsApp参数: 假设您在后台联系方式设置中添加了一个名为 WhatsApp 的自定义参数:

    {% contact whatsappNumber with name="WhatsApp" %}
    <a href="https://wa.me/{{ whatsappNumber }}" target="_blank">通过WhatsApp联系我们</a>
    

3. 获取通用自定义内容(diy 标签)

除了 systemcontact 标签,安企CMS还提供了一个更通用的 diy 标签,用于获取后台其他位置可能定义的自定义内容信息。虽然文档中没有直接提供后台设置 diy 参数的入口,但如果您的系统经过二次开发,或者在某些内容模型中定义了额外的全局参数,diy 标签将是您的好帮手。

基本用法: {% diy 变量名称 with name="字段名称" %}

  • 输出通用自定义参数: 假设您有一个名为 Author 的自定义全局参数,您可以使用 diy 标签来获取:
    
    {% diy websiteAuthor with name="Author" %}
    <span>网站作者:{{ websiteAuthor }}</span>
    

实用技巧和注意事项

  • 参数名大小写: 在后台定义参数名时,虽然建议使用英文,但无需担心大小写,安企CMS在模板调用时会自动匹配。
  • 多站点支持: 如果您使用了安企CMS的多站点功能,并且希望调用特定站点的全局参数,可以在 systemcontactdiy 等标签中添加 siteId 参数,例如 {% system with name="SiteName" siteId="2" %},其中"2"是目标站点的ID。
  • HTML内容处理: 如果您的自定义参数值包含HTML代码(例如一个富文本编辑器输出的版权信息),在模板中输出时,请务必使用 |safe 过滤器,以避免HTML被转义而无法正常显示。
    
    {% system siteCopyright with name="SiteCopyright" %}
    <div>{{ siteCopyright|safe }}</div>
    

通过这些灵活的全局参数调用方式,您可以让您的安企CMS网站模板更加动态、易于管理,从而更高效地进行内容更新和网站运营。

常见问题 (FAQ)

  1. 问:如果我的自定义参数中包含 HTML 代码,应该如何正确显示? 答: 当您的自定义参数值是HTML格式时,在模板中输出时需要使用 |safe 过滤器。例如,如果您在后台定义了一个包含HTML的“网站介绍”参数 SiteIntro,在模板中应该这样写:{% system siteIntroContent with name="SiteIntro" %}{{ siteIntroContent|safe }}。这样,HTML代码才会被浏览器正常解析并显示。

  2. 问:为什么在后台设置了自定义参数,但在模板中调用时却没有内容显示? 答: 这通常有几个原因。首先,请检查“参数名”是否与模板中的 name 属性值完全匹配。其次,确认您是否在正确的后台设置区域(例如“全局功能设置”或“联系方式设置”)添加了该参数,并使用了对应的模板标签(systemcontact)。最后,如果是在多站点环境下,确认是否指定了正确的 siteId。有时,清除系统缓存(在后台菜单中找到“更新缓存”选项)也可能解决显示问题。

  3. 问:多站点环境下,如何调用其他站点的全局参数? 答:: 在安企CMS的多站点环境中,您可以通过在 systemcontactdiy 标签中添加 siteId 参数来指定要调用哪个站点的全局参数。例如,如果您想获取 ID 为 2 的站点的网站名称,可以这样写:{% system otherSiteName with name="SiteName" siteId="2" %}。这样就可以跨站点调用全局参数了。