在网站运营过程中,我们经常会遇到这样的需求:标准的内容字段(如标题、内容、发布时间)已经无法满足个性化的展示需求。例如,一个产品详情页可能需要展示“生产日期”、“保质期”;一篇技术文章可能需要标明“作者职称”、“参考资料链接”;而网站底部可能需要一个不属于常规联系方式的自定义友情链接区域。

AnQiCMS 作为一款灵活的企业级内容管理系统,充分考虑到了这些自定义需求。它提供了强大的功能,让你可以轻松地在后台创建这些个性化参数,并安全、便捷地在前端模板中调用显示。

下面,就让我们一步步探索如何在 AnQiCMS 中实现这些自定义功能。

一、在 AnQiCMS 后台设置自定义参数

AnQiCMS 提供了两种主要的自定义参数方式,以应对不同的应用场景:针对特定内容模型(如文章、产品)的自定义字段,以及全站通用的全局或联系方式自定义参数。

1. 内容模型自定义字段:为特定内容类型增加专属属性

当你需要为文章、产品或其他自定义模型的内容添加独有信息时,内容模型自定义字段是理想的选择。例如,为“产品”模型添加“颜色”、“尺寸”、“材质”等属性,或者为“招聘”模型添加“工作地点”、“薪资范围”、“学历要求”等。

要设置这些字段,你可以前往后台的 内容管理,然后点击 内容模型。在这里,你可以选择编辑现有的模型(比如“文章模型”或“产品模型”),或者根据需要创建一个全新的内容模型。

进入模型编辑页面后,你会看到一个名为 内容模型自定义字段 的区域。在这里,你可以添加新的字段:

  • 参数名:这是这个字段在后台界面显示给管理员看的中文名称,方便你理解它的用途,比如“文章作者”、“产品颜色”。
  • 调用字段这是非常关键的一项! 这个字段名将是你将来在前端模板中调用此参数时使用的唯一标识。为了保持清晰和易于管理,强烈建议你使用简洁的英文小写字母或驼峰命名(例如 authorproductColor)。一旦设置并保存后,这个调用字段名通常不建议轻易修改,因为它直接影响前端模板的正常显示。
  • 字段类型:AnQiCMS 提供了多种字段类型来适应不同的数据格式:
    • 单行文本:适用于短文本输入,如作者名、产品型号。
    • 数字:确保输入的是纯数字,如库存量、价格。
    • 多行文本:适用于较长的描述,如产品特性、文章摘要。
    • 单项选择多项选择下拉选择:这些类型允许你预设选项,用户只能从中选择。它们的选项值通过下方的“默认值”区域一行一个地输入,系统会自动解析为可供选择的项。
  • 是否必填:如果此字段对内容的完整性至关重要,可以选择设为必填。
  • 默认值:为字段提供一个初始值。对于选择类型的字段,这里定义了可供选择的所有项。

完成自定义字段的设置后,当你再次进入 内容管理发布文档 页面,并选择一个属于该内容模型的分类时,你会在“其他参数”的折叠框中看到你刚刚添加的这些自定义字段,等待你为每篇内容填写具体的值。

2. 全局/联系方式自定义参数:配置网站通用信息

有些参数不是绑定到某篇文章或产品上的,而是全站通用,比如网站的额外社交媒体链接、特殊的公告文本、某个特定页面的引导链接等。AnQiCMS 在 全局设置联系方式设置 中提供了“自定义设置参数”功能来满足这类需求。

  • 全局设置:在后台导航中找到 后台设置,点击 全局设置。滚动到页面下方,你会看到 自定义设置参数 区域。在这里,你可以添加例如 HelpUrl (帮助页面链接)、AnnouncementText (网站公告) 等自定义参数。
  • 联系方式设置:同样在 后台设置 中,点击 联系方式设置。这个页面除了预设的联系信息外,你也可以在 自定义设置参数 中添加额外的联系方式,比如 WhatsApp 账号、特定的客服工号等。

在这两个位置添加自定义参数时,你需要填写:

  • 参数名:同样是模板中调用的标识,建议使用英文,例如 HelpUrlWhatsAppAccount。系统会自动转换为驼峰命名。
  • 参数值:这是该参数的具体内容,比如一个 URL 链接、一段文本。
  • 备注:可选的,用于说明这个参数的用途,方便日后管理。

这些全局或联系方式的自定义参数,在整个网站的任何模板中都可以被调用,为网站提供统一的、灵活的信息展示。

二、在前端模板中调用显示自定义参数

在 AnQiCMS 中,前端模板采用类似 Django 模板引擎的语法。变量使用双花括号 {{变量}},而逻辑控制标签(如条件判断、循环)则使用单花括号和百分号 {% 标签 %}

了解了这一点,我们就可以在模板中轻松地调用之前在后台设置的自定义参数了。

1. 调用内容模型自定义字段

对于绑定到文章、产品等内容模型的自定义字段,AnQiCMS 提供了几种调用方式:

  • 直接通过变量名调用(适用于当前详情页或列表循环中)

    如果你正在文档详情页(archive.html),并且知道自定义字段的“调用字段”名称(例如 author),你可以直接使用 {{archive.author}} 来显示其值。

    <p>作者:{{ archive.author }}</p>
    <p>文章来源:{{ archive.source }}</p>
    

    同样,如果你在一个 archiveList 的循环中(例如显示文章列表),你也可以通过循环变量 item 来访问这些自定义字段:

    {% archiveList archives with type="list" limit="10" %}
        {% for item in archives %}
            <div class="article-item">
                <h3><a href="{{ item.Link }}">{{ item.Title }}</a></h3>
                <p>作者:{{ item.author }}</p> {# 假设你有一个名为 'author' 的自定义字段 #}
                <p>发布日期:{{ stampToDate(item.CreatedTime, "2006-01-02") }}</p>
            </div>
        {% endfor %}
    {% endarchiveList %}
    

    对于当前文档详情页,你也可以使用 archiveDetail 标签来获取单个自定义字段的值:

    <div>产品颜色:{% archiveDetail with name="productColor" %}</div>
    
  • 通过 archiveParams 标签循环调用所有自定义字段(适用于动态展示)

    如果你不确定一个内容模型有哪些自定义字段,或者希望动态地展示所有自定义字段及其值(例如在一个产品详情页统一列出所有规格参数),archiveParams 标签就非常方便了。

    这个标签会返回一个包含所有自定义字段的数组,你可以通过 for 循环遍历它们。

    ”`twig {% archiveDetail currentArchive with name=“Id” %} {# 获取当前文档ID,如果不在详情页需要指定id #}

    <h3>详细参数</h3>
    {% archiveParams params with id=currentArchive %} {# 使用当前文档ID获取参数,或省略id在详情页自动获取 #}
    <ul>
        {% for item in params %}
            <li>
                <span>{{ item.Name }}:</span> {# 'Name'