AnQiCMS的系统设置标签`system`如何获取并显示网站全局信息?

在网站建设和日常运营中,我们经常会遇到需要展示一些全局性信息的情况,比如网站的名称、Logo、备案号、联系方式等。这些信息贯穿整个网站,需要在多个页面中保持一致。AnQiCMS 提供了一个极其便捷的方式来处理这类全局信息,那就是通过其内置的 system 模板标签。

认识 system 标签:获取网站全局信息的钥匙

system 标签就像一把钥匙,能够帮助你在模板中轻松获取并显示在后台“全局功能设置”中配置的各种网站全局信息。你无需手动复制代码或担心信息不一致,只需简单调用,AnQiCMS 就会自动为你渲染出最新的全局设置。

它的基本使用方法非常直观:

{% system 变量名称 with name="字段名称" %}

这里面有两个核心部分需要我们理解:

  • name="字段名称":这是最重要的部分,它指定了你想要获取的具体全局信息。比如,如果你想获取网站名称,那么 字段名称 就是 SiteName;如果想获取网站Logo,那就是 SiteLogo。这些字段名称通常与后台设置页面中的项一一对应。
  • 变量名称:这是一个可选参数。如果你想将获取到的全局信息存储到一个变量中,以便在模板的其他地方重复使用,或者进行一些复杂的逻辑处理,就可以给它起一个变量名(例如 siteName)。如果不需要存储,你可以省略这个变量名,AnQiCMS 会直接在当前位置输出对应的值。

此外,对于管理多个站点的用户,system 标签还支持一个 siteId 参数,允许你指定获取特定站点的信息。不过,在大多数单站点情况下,我们通常无需设置此参数,标签会自动获取当前站点的信息。

常用全局信息及其获取方式

现在,让我们通过一些具体的例子,来看看如何使用 system 标签来获取并显示常见的网站全局信息:

  1. 网站名称 (SiteName) 这是网站的品牌名称,通常显示在浏览器标题栏、网站页头等位置。

    <title>{% system with name="SiteName" %}</title>
    <h1>欢迎来到 {% system with name="SiteName" %}</h1>
    
  2. 网站Logo (SiteLogo) 网站的视觉标识,一般出现在页头。

    <a href="/">
        <img src="{% system with name="SiteLogo" %}" alt="{% system with name="SiteName" %}" />
    </a>
    
  3. 网站备案号 (SiteIcp) 如果你的网站有备案,这个信息通常需要展示在网站底部。

    <p><a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">{% system with name="SiteIcp" %}</a></p>
    
  4. 版权内容 (SiteCopyright) 与当前年份 页脚常见的版权声明,通常会包含当前年份。AnQiCMS 提供了一个 {% now "2006" %} 标签来方便地获取当前年份。

    <div>
        {% system siteCopyright with name="SiteCopyright" %}{{siteCopyright|safe}}
        &copy; {% now "2006" %}. All Rights Reserved.
    </div>
    

    这里,我们先将 SiteCopyright 的内容赋值给 siteCopyright 变量,然后使用 |safe 过滤器来确保如果内容包含 HTML 代码也能正确解析显示。

  5. 网站首页地址 (BaseUrl) 当你需要获取网站的根目录 URL 时,这个标签就派上用场了。

    <link rel="home" href="{% system with name="BaseUrl" %}" />
    
  6. 模板静态文件地址 (TemplateUrl) 模板的 CSS、JS 和图片等静态资源通常存放在一个特定目录下。使用 TemplateUrl 可以帮助你构建正确的静态文件路径。

    <link href="{% system with name="TemplateUrl" %}/css/style.css" rel="stylesheet">
    <script src="{% system with name="TemplateUrl" %}/js/main.js"></script>
    
  7. 站点语言 (Language) 如果你在后台设置了网站的默认语言,可以通过这个标签获取语言代码,通常用于 HTML 标签的 lang 属性。

    <html lang="{% system with name='Language' %}">
    
  8. 自定义参数 (后台自定义设置的参数名) AnQiCMS 允许你在后台“全局功能设置”中添加自定义参数。这些参数可以是你网站特有的联系方式、社交媒体链接或者任何你需要全局调用的信息。例如,如果你添加了一个名为 HelpUrl 的自定义参数,你就可以这样调用:

    <div>我们的帮助页面:<a href="{% system with name="HelpUrl" %}" target="_blank">点击这里</a></div>
    

将全局信息整合到网站中

通过 system 标签,我们可以轻松地在网站的各个部分(如页头、页脚、侧边栏等)调用这些全局信息,从而确保整个网站的一致性和可维护性。例如,一个典型的网站页脚可能会包含版权信息、备案号和联系方式,这些都可以通过 system 标签和 contact 标签(用于获取联系方式)组合实现:

<footer>
    <div class="container">
        <p>
            {% system siteCopyright with name="SiteCopyright" %}{{siteCopyright|safe}}
            &copy; {% now "2006" %}. All Rights Reserved.
        </p>
        <p>
            备案号:<a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">{% system with name="SiteIcp" %}</a>
        </p>
        <address>
            联系我们:{% contact with name="Cellphone" %} | 邮箱:{% contact with name="Email" %}
        </address>
    </div>
</footer>

总结

system 模板标签是 AnQiCMS 中一个非常实用的功能,它极大地简化了网站全局信息的管理和展示。通过灵活运用这个标签,你可以轻松地构建出结构清晰、信息一致、易于维护的网站,让你的内容运营工作更加高效。


常见问题解答 (FAQ)

Q1: 我在后台“全局功能设置”中新增了一个自定义参数,如何在前端模板中调用它? A1: 非常简单。假设你在后台新增了一个名为“社交媒体链接”的自定义参数,其“参数名”填写为 SocialMediaLink,并设置了值。在前端模板中,你就可以通过 {% system with name="SocialMediaLink" %} 来获取并显示这个值。

Q2: 我的网站启用了多站点管理功能,我想在其中一个站点的模板中显示另一个站点的全局信息,可以实现吗? A2: 可以的。system 标签支持 siteId 参数。你需要知道目标站点的 siteId(通常可以在后台的多站点管理页面中查看到),然后像这样调用:{% system with name="SiteName" siteId="2" %},这将显示 ID 为 2 的站点的网站名称。

Q3: 为什么我在后台修改了全局设置后,前台页面没有立即更新? A3: 这可能是由于 AnQiCMS 的系统缓存导致的。你可以尝试清除系统缓存。在 AnQiCMS 后台,通常会有一个“更新缓存”或类似的选项,点击它就可以刷新缓存,让修改后的全局设置立即生效。如果问题依然存在,请检查模板中的字段名称是否拼写正确,以及是否遗漏了 {% system ... %} 标签。