AnQiCMS 在内容管理上的核心优势之一,便是其灵活可定制的内容模型。这使得我们不再受限于固定的内容结构,能够根据网站的实际运营需求,创建出符合业务逻辑的个性化内容类型。无论您是发布技术文章、展示产品详情,还是管理活动信息,自定义内容模型字段都能帮助您精确地构建所需的内容结构,并最终在网站前台灵活地展示出来。

下面,就让我们一起了解如何在AnQiCMS中自定义内容模型字段,并将其内容在模板中灵活调用。

一、理解自定义内容模型的价值

想象一下,您的网站需要发布各种类型的内容:技术博客文章需要作者、发布平台、技术栈等信息;而产品展示则可能需要产品型号、价格、库存、详细参数等。传统的CMS往往只能提供“标题”、“内容”等通用字段,要添加这些特定信息,可能需要硬编码到内容中,既不规范也不利于管理和搜索。

AnQiCMS的自定义内容模型机制,允许您为不同的内容类型(如“文章”、“产品”)添加专属的字段。这些字段就像是内容的“DNA”,定义了每种内容应包含的所有信息,从而实现内容的结构化管理。这不仅让内容录入变得更清晰高效,也为前端展示提供了极大的灵活性,您可以根据需要,精确地调用和展示每个字段的内容。

二、在AnQiCMS后台定义自定义字段

自定义字段的设置都在“内容管理”模块下的“内容模型”中进行。AnQiCMS内置了“文章模型”和“产品模型”两种基础模型,您可以直接编辑它们,也可以创建全新的自定义模型。

  1. 进入内容模型管理: 登录AnQiCMS后台,导航至“内容管理” -> “内容模型”。在这里,您会看到所有已有的内容模型列表。

  2. 编辑或创建模型: 选择一个您想添加自定义字段的模型(例如“文章模型”或“产品模型”),点击其旁边的“编辑”按钮。如果您想从零开始,也可以点击“添加新模型”来创建一个全新的内容模型。

  3. 添加自定义字段: 在模型编辑页面,您会看到“内容模型自定义字段”区域。这里就是您定义个性化字段的地方。点击“添加字段”,会出现一个表单,需要您填写以下关键信息:

    • 参数名: 这是字段在后台管理界面显示给您的名称,也是方便您理解字段用途的中文描述,例如“文章作者”、“产品型号”、“服务特点”等。
    • 调用字段: 这是在模板中实际用于调用该字段内容的唯一标识符,必须使用英文字母,建议全部小写或驼峰命名,例如authormodelNumberfeatures。这个名称非常重要,后续在模板中就靠它来获取数据。
    • 字段类型: AnQiCMS提供了多种字段类型,以满足不同的数据输入需求:
      • 单行文本: 适用于简短的文字信息,如作者姓名、产品型号。
      • 数字: 仅限输入数字,如价格、库存数量。
      • 多行文本: 适用于较长的文本,如产品简介、服务描述。
      • 单项选择/多项选择/下拉选择: 适用于提供预设选项供选择的场景,例如产品颜色(单选)、服务范围(多选)。这些选项需要在“默认值”中每行填写一个。
      • 图片组/文件组: 适用于上传多张图片或多个文件。
    • 是否必填: 勾选此项,该字段在发布内容时将成为必填项。
    • 默认值: 您可以为字段设置一个默认值。如果是选择类字段,这里则用来填写所有可供选择的选项,每行一个。

    完成字段的添加和配置后,务必点击页面底部的“保存”按钮,使更改生效。

三、发布内容时填充自定义字段

当您定义好自定义字段后,回到“内容管理”模块,选择“添加新文档”或编辑现有文档时,选择一个关联了您刚才修改或创建模型的分类。例如,如果您在“产品模型”中添加了字段,那么在发布属于“产品模型”下的某个分类时,这些自定义字段就会自动出现在文档编辑页面的“其他参数”折叠区域,等待您填写相应的内容。这大大简化了内容编辑的流程,确保了内容的完整性和规范性。

四、在模板中灵活调用自定义字段内容

自定义字段的强大之处在于,它们能够被AnQiCMS的模板标签精准地捕获和显示。AnQiCMS的模板引擎类似Django语法,使用{{变量}}来输出内容,{% 标签 %}来控制逻辑。

1. 在详情页调用单个内容的自定义字段

在文档详情页(例如{模型table}/detail.html),我们通常需要展示当前文档的所有详细信息。

  • 直接调用已知字段名: 如果您知道自定义字段的“调用字段”名称,可以直接使用archiveDetail标签来获取它的值。 例如,您为“文章模型”添加了一个名为author(调用字段)的“文章作者”(参数名)字段:

    <p>文章作者:{% archiveDetail with name="author" %}</p>
    

    又或者为“产品模型”添加了productPrice字段:

    <p>产品价格:{{ archive.productPrice }} 元</p> {# 简单字段也可以直接通过archive.调用字段名访问 #}
    
  • 循环遍历所有自定义字段: 有时,您可能希望显示文档的所有附加信息,而不需要逐一指定。archiveParams标签可以帮助您遍历所有已设置的自定义字段。

    {% archiveParams params %}
        <div class="custom-fields">
            {% for item in params %}
                <p>{{ item.Name }}:{{ item.Value }}</p>
            {% endfor %}
        </div>
    {% endarchiveParams %}
    

    在这里,item.Name是您在后台设置的“参数名”(例如“文章作者”),item.Value则是您在发布内容时填写的实际值。

  • 处理特殊字段类型(如图片组、多项选择): 对于图片组、多项选择等返回数组或列表的字段类型,您需要结合循环来显示。 例如,您定义了一个名为`