如何在AnQiCMS模板中获取系统全局配置信息,例如网站名称和LOGO?

在AnQiCMS模板中巧妙获取网站全局配置,让您的网站更灵活

当我们设计或维护AnQiCMS网站模板时,经常会遇到一个需求:需要在网站的各个页面显示统一的全局信息,比如网站的名称、LOGO、备案号,或是自定义的联系方式等。手动在每个页面重复添加这些信息不仅效率低下,而且一旦需要修改,更新起来更是耗时费力。幸运的是,AnQiCMS提供了一个强大而便捷的system标签,让您能够轻松地在模板中获取这些系统全局配置,从而构建更具灵活性和易于维护的网站。

核心方法:系统标签(system Tag)

AnQiCMS的模板采用类似Django模板引擎的语法,对于全局配置信息的获取,system标签是您的核心工具。它能够直接访问您在后台“全局功能设置”中配置的各项数据。

system标签的基本用法

system标签的通用语法非常直观:您可以通过指定name参数来获取特定的配置项。

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

这里,变量名称是可选的,如果您想直接在标签内部输出结果,可以省略它;如果您希望将获取到的值赋值给一个变量以便后续使用,则可以定义一个变量名称字段名称则是您希望获取的具体配置项的英文标识。

下面,我们通过一些常用的例子来具体看看如何使用这个标签:

获取网站名称(SiteName

网站名称是每个网站不可或缺的标识。在AnQiCMS后台的“全局功能设置”中,您设置的“网站名称”可以通过SiteName这个字段名来获取。

{# 直接输出网站名称 #}
<h1>{% system with name="SiteName" %}</h1>

{# 将网站名称赋值给一个变量,然后使用 #}
{% system siteName with name="SiteName" %}
<p>欢迎来到 {{ siteName }}!</p>

获取网站LOGO(SiteLogo

网站LOGO同样是网站品牌形象的关键元素。在“全局功能设置”中上传的网站LOGO图片地址,可以通过SiteLogo字段获取。

{# 直接输出网站LOGO,同时利用网站名称作为图片的alt属性,有利于SEO #}
<img src="{% system with name="SiteLogo" %}" alt="{% system with name="SiteName" %}" />

{# 将LOGO图片地址赋值给变量,并结合网站名称 #}
{% system siteLogo with name="SiteLogo" %}
{% system siteName with name="SiteName" %}
<a href="/">
    <img src="{{ siteLogo }}" alt="{{ siteName }} Logo" />
</a>

其他常用全局信息

除了网站名称和LOGO,system标签还能获取许多其他有用的全局配置:

  • 网站备案号 (SiteIcp)
    
    <p><a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">{% system with name="SiteIcp" %}</a></p>
    
  • 版权内容 (SiteCopyright):这通常用于网站底部,显示版权声明。如果后台的版权信息中包含HTML标签(如链接),记得使用|safe过滤器,让模板正确渲染HTML而非将其作为纯文本输出。
    
    {% system copyrightInfo with name="SiteCopyright" %}
    <p>{{ copyrightInfo|safe }}</p>
    
  • 网站首页地址 (BaseUrl)
    
    <a href="{% system with name="BaseUrl" %}">返回首页</a>
    
  • 模板静态文件地址 (TemplateUrl):这个非常实用,它指向当前模板文件夹下的/public/static/目录,方便您引入CSS、JavaScript等静态资源。
    
    <link href="{% system with name="TemplateUrl" %}/css/style.css" rel="stylesheet">
    <script src="{% system with name="TemplateUrl" %}/js/main.js"></script>
    
  • 站点语言 (Language): 获取当前站点的语言代码,常用于HTML的lang属性。
    
    <html lang="{% system with name='Language' %}">
    

自定义参数:扩展您的配置

AnQiCMS的“全局功能设置”还允许您添加自定义参数。这意味着您可以根据具体需求,创建任何您需要的全局配置项。例如,您可能想添加一个“微信客服号”或“在线客服链接”,并在模板中调用。

  1. 在后台添加自定义参数: 进入AnQiCMS后台的“后台设置” -> “全局功能设置”页面。在页面底部找到“自定义设置参数”,点击“添加自定义参数”,填写参数名(例如WechatServiceNo)和参数值。

  2. 在模板中调用自定义参数: 一旦保存,您就可以使用system标签,通过您定义的参数名来获取它的值。

    {# 假设您在后台自定义了一个名为 "WechatServiceNo" 的参数 #}
    <p>微信客服:{% system with name="WechatServiceNo" %}</p>
    
    
    {# 假设您自定义了一个名为 "AnalyticsCode" 的参数,通常会包含HTML/JS代码 #}
    {% system analyticsScript with name="AnalyticsCode" %}
    {% if analyticsScript %}
    {{ analyticsScript|safe }}
    {% endif %}
    

实际应用:构建网站头部和底部

通过system标签,您可以很方便地构建出网站的通用模块,例如页眉和页脚,确保这些模块的内容在全站保持一致。

{# partial/header.html #}
<header class="site-header">
    <div class="container">
        <div class="logo">
            <a href="{% system with name="BaseUrl" %}">
                <img src="{% system with name="SiteLogo" %}" alt="{% system with name="SiteName" %}" />
            </a>
        </div>
        <nav class="main-nav">
            {# 导航列表通常使用navList标签,这里仅作示意 #}
            <ul>
                <li><a href="{% system with name="BaseUrl" %}">首页</a></li>
                {# ... 其他导航项 ... #}
            </ul>
        </nav>
    </div>
</header>

{# partial/footer.html #}
<footer class="site-footer">
    <div class="container">
        <p>{% system copyrightInfo with name="SiteCopyright" %}{{ copyrightInfo|safe }}</p>
        <p>备案号:<a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">{% system with name="SiteIcp" %}</a></p>
        <p>联系电话:{% contact with name="Cellphone" %}</p>
        <p>网站地址:<a href="{% system with name="BaseUrl" %}">{% system with name="BaseUrl" %}</a></p>
    </div>
</footer>

然后在您的页面模板中,只需简单地引入这些公共片段即可:

{% include "partial/header.html" %}

<main class="site-content">
    {# 页面具体内容 #}
</main>

{% include "partial/footer.html" %}

这样一来,无论您需要修改网站名称、LOGO,还是版权信息,都只需在AnQiCMS后台的“全局功能设置”中操作一次,模板会自动同步更新,大大提升了网站的维护效率。

小贴士与**实践

  • 多站点环境:siteId 参数:如果您通过AnQiCMS的多站点管理功能创建了多个站点,并且需要在某个站点的模板中获取其他站点的全局配置,system标签也支持siteId参数。例如{% system with name="SiteName" siteId="2" %},它将获取ID为2的站点的网站名称。不过,对于当前站点的全局配置,通常无需指定siteId
  • 变量命名与大小写:请注意name参数中的字段名称(如SiteNameSiteLogo)是严格区分大小写的,必须与AnQiCMS后台定义和文档中提供的一致。
  • 后台管理:全局设置:所有这些可调用的全局配置都可以在“后台设置” -> “全局功能设置”中进行管理和更新。熟悉这个区域将帮助您更好地利用system标签。

通过灵活运用system标签,您可以轻松管理和展示AnQiCMS网站的全局配置信息,让您的模板开发和网站运营工作变得更加高效和便捷。


常见问题 (FAQ)

1. 为什么我的网站名称或LOGO在模板中没有显示,或者显示不正确?

首先,请检查AnQiCMS后台的“后台设置” -> “全局功能设置”中,是否已正确填写了“网站名称”或上传了“网站LOGO”。如果后台信息是空白的,模板自然无法获取到内容。其次,请确认您在模板中使用的name参数值是否正确,例如SiteNameSiteLogo,并且大小写是否完全匹配。最后,清除浏览器缓存和AnQiCMS系统缓存(通过后台的“更新缓存”功能),