如何在AnQiCMS模板中获取并显示网站的系统全局设置,如网站名称、Logo、备案号和版权信息?

在构建网站时,一些核心信息如网站名称、网站Logo、备案号以及版权信息是不可或缺的元素。这些全局性的设置不仅能帮助访客快速识别您的品牌,也是网站专业性和合规性的体现。AnQiCMS 提供了一套直观而灵活的方式来管理和在模板中呈现这些系统级的信息。

在哪里设置这些全局信息?

首先,这些重要的网站信息都需要在 AnQiCMS 的后台进行统一配置。通常,您可以在后台导航菜单中找到“后台设置”下的“全局功能设置”。

在这个界面中,您可以轻松地输入和调整以下信息:

  • 网站名称:您的网站或品牌的名称,它通常会显示在浏览器标题栏或网站页头。
  • 网站 Logo:上传您的品牌Logo图片,这将是网站视觉识别的核心。
  • 备案号码:如果您的网站在中国大陆运营并已备案,您可以在此填写备案号。
  • 版权信息:通常显示在网站页脚,用于声明网站内容的版权所有。
  • 此外,还有网站地址、移动端地址、默认语言包等其他重要的全局设置,以及允许您添加自定义参数,以满足更个性化的需求。

完成这些设置后,这些信息便会存储在系统中,等待您的模板调用。

如何在模板中获取并显示这些信息?

AnQiCMS 提供了一个专门用于获取系统全局配置的模板标签——system。这个标签非常灵活,能够帮助我们在网站的任何模板文件中调取所需的全局设置。

使用system标签的基本语法是这样的: {% system 变量名称 with name="字段名称" %}

这里,字段名称对应着后台“全局功能设置”中各项配置的内部标识。您可以选择直接输出该字段的值,也可以将其赋值给一个变量名称,然后在模板的其他地方使用这个变量。

接下来,我们以几个最常用的全局信息为例,看看它们在模板中是如何获取和显示的。

1. 显示网站名称

网站名称通常会在页面的<title>标签内、页眉或页脚等关键位置出现。

{# 直接输出网站名称 #}
<title>{% tdk with name="Title" siteName=true %}</title> {# 使用tdk标签自动组合标题和网站名 #}
<h1>欢迎访问 {% system with name="SiteName" %}</h1>

{# 也可以将网站名称赋值给一个变量再使用 #}
{% system siteNameVar with name="SiteName" %}
<p>当前网站的名称是:{{ siteNameVar }}</p>

在上面的例子中,我们展示了两种获取网站名称的方式。在<title>标签中,我们使用了更专业的tdk标签来自动处理标题和网站名称的组合,它在获取页面标题的同时,可以通过siteName=true参数自动将后台配置的网站名称附加到页面标题后。而在<h1><p>标签中,我们直接使用system标签或者通过变量siteNameVar来显示网站名称。

2. 显示网站 Logo

网站 Logo 是品牌识别的重要组成部分,通常以图片的形式在页眉展示。

{# 直接输出网站Logo图片 #}
<img src="{% system with name="SiteLogo" %}" alt="{% system with name="SiteName" %} Logo" />

{# 也可以将Logo地址赋值给一个变量再使用 #}
{% system siteLogoUrl with name="SiteLogo" %}
{% system siteNameForLogo with name="SiteName" %}
<a href="/">
    <img src="{{ siteLogoUrl }}" alt="{{ siteNameForLogo }} 的Logo" />
</a>

在显示 Logo 时,除了 src 属性指向 Logo 图片的地址(由 {% system with name="SiteLogo" %} 提供)外,我们强烈建议您为 <img> 标签添加 alt 属性。这个 alt 属性的值通常是网站名称,它不仅有助于搜索引擎理解图片内容,也能在图片无法加载时提供有意义的文本替代。

3. 显示备案号

如果您的网站有备案号,通常会将其展示在网站的页脚,并链接到工信部备案查询网站。

{# 直接输出备案号并添加链接 #}
<p>
    <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">
        {% system with name="SiteIcp" %}
    </a>
</p>

{# 也可以通过变量来组织显示 #}
{% system icpNumber with name="SiteIcp" %}
{% if icpNumber %} {# 判断备案号是否存在,再进行显示 #}
<p>
    本网站由 <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">{{ icpNumber }}</a> 提供备案支持。
</p>
{% endif %}

在上述代码中,我们使用了 rel="nofollow"target="_blank" 属性。nofollow 属性告诉搜索引擎不要追踪这个链接,因为它是一个外部的、可能不相关的政府网站链接;target="_blank" 则让链接在新窗口或新标签页中打开,避免访客离开您的网站。

4. 显示版权信息

版权信息通常位于网站的页脚,声明网站内容的权利归属。由于版权信息可能包含 HTML 标签(如 &copy; 符号、链接等),在使用时需要特别注意。

{# 将版权信息赋值给变量并使用 |safe 过滤器输出 #}
{% system copyrightInfo with name="SiteCopyright" %}
<p>
    {{ copyrightInfo|safe }}
</p>

{# 结合当前年份显示 #}
<footer>
    <p>
        &copy; {% now "2006" %} {{ copyrightInfo|safe }}
    </p>
</footer>

这里需要特别强调 |safe 过滤器。如果后台的版权信息中包含了 HTML 标签,而您想让这些标签被浏览器正确解析而不是作为纯文本显示,就必须使用 |safe 过滤器。否则,像 &copy; 这样的 HTML 实体会原样显示,而不是版权符号 ©。同时,您也可以结合 {% now "2006" %} 标签动态显示当前年份,使版权信息保持最新。

5. 其他常用全局信息

除了上述几项,system 标签还可以获取其他有用的全局信息:

  • 网站首页地址 (BaseUrl):在模板中构建绝对链接时很有用。 {{ "%s/some-page"|format(system.BaseUrl) }}
  • 模板静态文件地址 (TemplateUrl):指向当前模板的静态资源(CSS、JS、图片)目录。 <link href="{% system with name="TemplateUrl" %}/css/style.css" rel="stylesheet">
  • 站点语言 (Language):可用于 <html> 标签的 lang 属性,有助于国际化和SEO。 <html lang="{% system with name='Language' %}">

6. 自定义参数的获取

如果您在后台的“全局功能设置”中添加了自定义参数(例如,一个名为SupportEmail的客服邮箱),您也可以用同样的方式在模板中获取它们:

{% system supportEmail with name="SupportEmail" %}
<p>客服邮箱:<a href="mailto:{{ supportEmail }}">{{ supportEmail }}</a></p>

小结

通过 system 标签,AnQiCMS 提供了极其便捷的方式来管理和呈现网站的全局配置信息。无论您是显示网站基本信息、引用静态资源路径,还是调用自定义的配置项,system 标签都能帮助您以简洁高效的方式完成,让您能够更专注于网站内容的创作和运营。正确地运用这些标签,能够大幅提升模板的维护效率和网站的整体用户体验。


常见问题 (FAQ)

Q1: 为什么我在后台设置的版权信息中包含了 HTML 链接,但在前台显示时却直接显示了 HTML 代码,而不是可点击的链接? A1: 这是因为 AnQiCMS 模板引擎默认会对输出的内容进行安全转义,以防止 XSS 攻击。如果您希望 HTML 代码被正常解析,需要在输出该内容时使用 |safe 过滤器。例如,如果您的版权信息是 &copy; 2023 <a href="/">我的网站</a>,在模板中应该写成 {{ copyrightInfo|safe }}

Q2: 如果我的网站启用了多站点功能,我怎么获取特定站点的全局设置,而不是当前站点的? A2: `