如何在网站模板中灵活调用系统全局配置信息进行显示?

在网站模板中灵活地调用系统全局配置信息,是构建动态且易于维护网站的关键一步。安企CMS(AnQiCMS)深知这一需求,因此在设计之初就提供了强大且直观的模板标签,让用户能够轻松地在页面任何位置展示预设的系统级数据、联系方式乃至自定义信息。

安企CMS的模板系统采用了类似Django模板引擎的语法,其中变量通常使用双花括号 {{ 变量名 }} 来定义,而各种操作和标签则通过单花括号和百分号 {% 标签名 %} 来实现。这种设计确保了模板代码的清晰易读。要调用全局配置信息,我们主要会用到 systemcontacttdk 这三个核心标签,以及一个用于完全自定义内容的 diy 标签。

调用系统级别的基础配置信息(system 标签)

当我们需要在网站的页头、页脚或任何通用区域显示网站名称、Logo、备案号等基础信息时,system 标签便是我们的得力助手。这个标签能够从后台的“全局设置”中获取预设的数据。

例如,要显示网站的名称,我们可以在模板中这样编写:

<title>{{ title }} - {% system with name="SiteName" %}</title>

这段代码会先获取当前页面的标题,然后附加在后台设置的网站名称之后。如果你想获取Logo图片并展示出来,可以这样做:

<a href="{% system with name="BaseUrl" %}">
    <img src="{% system with name="SiteLogo" %}" alt="{% system with name="SiteName" %}" />
</a>

这里我们不仅展示了Logo图片,还将其包装成一个链接,指向网站的首页地址。类似的,网站的备案号 (SiteIcp) 和版权信息 (SiteCopyright) 也能被轻松调用:

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

此外,system 标签还能获取到网站的基础URL (BaseUrl)、移动端URL (MobileUrl)、当前模板的静态文件路径 (TemplateUrl) 以及站点语言 (Language) 等信息,方便进行资源引用和多语言适配。例如,引用模板CSS文件时:

<link href="{% system with name="TemplateUrl" %}/css/style.css" rel="stylesheet">

值得一提的是,如果你在安企CMS后台启用了多站点管理功能,并且希望在当前模板中调用其他站点的数据,可以通过 siteId 参数来指定,例如 {% system with name="SiteName" siteId="2" %}

调用网站联系方式(contact 标签)

网站的联系信息,如电话、地址、邮箱、社交媒体链接等,往往需要统一管理并在多个页面展示。contact 标签就是为此而生,它直接从后台的“联系方式设置”中获取数据。

要显示网站的联系电话,我们可以这样:

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

或者联系邮箱:

<div>邮箱:<a href="mailto:{% contact with name="Email" %}">{% contact with name="Email" %}</a></div>

如果后台配置了微信二维码,展示也非常简单:

<div>
    <img src="{% contact with name="Qrcode" %}" alt="微信二维码" />
</div>

contact 标签不仅支持这些内置字段,还允许用户在后台“联系方式设置”中自定义参数,比如添加一个“WhatsApp联系方式”。一旦定义,它就能像内置字段一样被调用:

<div>WhatsApp:{% contact with name="WhatsApp" %}</div>

控制页面的SEO元信息(tdk 标签)

SEO(搜索引擎优化)对于网站的可见性至关重要。页面的titlekeywordsdescription是其中不可或缺的部分。tdk 标签专门用于获取这些元信息,并支持灵活的展示方式。这些信息同样来自后台的“首页TDK设置”或各内容详情页的SEO配置。

<head> 区域,我们通常这样使用 tdk 标签:

<title>{% tdk with name="Title" siteName=true sep="_" %}</title>
<meta name="keywords" content="{% tdk with name="Keywords" %}">
<meta name="description" content="{% tdk with name="Description" %}">

这里,Title 标签的 siteName=true 会自动将网站名称添加到页面标题之后,sep="_" 则定义了标题与网站名称之间的分隔符。

对于规范链接(Canonical URL),这是一个重要的SEO**实践,用于避免重复内容问题。tdk 标签也能获取它,但通常我们会先判断其是否存在:

{%- tdk canonical with name="CanonicalUrl" %}
{%- if canonical %}
<link rel="canonical" href="{{canonical}}" />
{%- endif %}

这样可以确保只在有必要时才输出规范链接标签。

灵活自定义全局变量(diy 标签和自定义参数)

除了上述标准化的配置信息,有时我们可能需要在后台定义一些完全自定义的全局变量,例如某个营销活动的链接、某个通知文本等。安企CMS提供了两种方式实现这种自定义:

  1. systemcontact 标签中添加自定义参数: 就像我们在 contact 标签中添加 WhatsApp 一样,在“全局功能设置”或“联系方式设置”中添加自定义参数(例如 HelpUrl)。然后通过相应的 systemcontact 标签以 name="HelpUrl" 的形式调用。

    <div>帮助页面:{% system with name="HelpUrl" %}</div>
    
  2. 使用 diy 标签: diy 标签是一个更通用的自定义内容标签,它直接对应后台中用户自定义的任何全局字段。

    比如在后台我们定义了一个名为 Author 的参数,在模板中可以这样获取:

    <div>网站作者:{% diy with name="Author" %}</div>
    

这种灵活的自定义功能,让我们可以根据网站的特定需求,扩展和调用各种个性化的全局配置。

通过这些内置的模板标签,安企CMS极大地简化了全局配置信息的调用过程。我们只需在后台设置好相应的值,然后在模板中用简洁的标签语法引用,就能实现网站内容的动态展示和高效管理。这不仅提高了开发效率,也使得网站的后期维护和内容更新变得更加便捷。


常见问题 (FAQ)

  1. **问:如果我在后台修改了某个全局配置,但前台页面