安企CMS(AnQiCMS)以其灵活的内容模型,为我们构建个性化网站提供了极大的便利。我们都知道,每个网站的内容结构都千差万别,传统的“文章”、“产品”模型往往难以满足所有细节展示需求。这时候,自定义字段就成为了网站运营和内容管理不可或缺的利器。
这篇文章将带你一步步了解,如何在安企CMS中创建自定义字段,并将其内容灵活地呈现在网站前端模板上。
第一部分:理解安企CMS的内容模型与自定义字段
在安企CMS中,内容模型可以被视为不同类型内容的“蓝图”。无论是发布新闻文章、展示商品详情,还是介绍团队成员,我们都需要一套结构来规范内容的录入。系统默认提供了“文章模型”和“产品模型”这两个基础模型,它们定义了一些常见的字段,比如标题、内容、分类、缩略图等。
然而,当我们需要为特定内容添加更多独特信息时,比如为产品添加“品牌”、“产地”、“保质期”,或者为团队成员添加“职位”、“联系方式”、“座右铭”,默认字段显然就不够用了。这时,自定义字段就发挥了作用,它允许我们在现有模型的基础上,根据实际业务需求,扩展更多专属字段,从而实现个性化的内容展示。
安企CMS提供了多种类型的自定义字段,以适应不同的数据录入需求,包括:
- 单行文本:适用于简短的文字信息,如品牌名称、产品型号。
- 数字:仅限数字输入,如价格、库存。
- 多行文本:适用于需要较长文字描述的字段,如产品特点、详细说明。
- 单项选择:提供预设选项,用户只能选择其中一项,如“颜色:红色/蓝色/绿色”。
- 多项选择:提供预设选项,用户可以选择多项,如“功能:防水/防尘/NFC”。
- 下拉选择:以下拉菜单形式呈现单选列表,节省页面空间。
这些灵活的字段类型能够帮助我们构建出既规范又高度定制化的内容结构。
第二部分:在后台创建自定义字段
现在,让我们进入安企CMS的后台,动手创建一些自定义字段。
进入内容模型管理 首先,登录你的安企CMS后台。在左侧导航栏中,找到“内容管理”菜单,点击后会看到“内容模型”选项,点击进入内容模型管理界面。
选择或创建内容模型 在这里,你会看到系统内置的“文章模型”和“产品模型”,也可以选择添加新的自定义模型。为了演示,我们以修改“产品模型”为例。点击“产品模型”右侧的“编辑”按钮。
添加自定义字段 进入模型编辑页面后,找到“内容模型自定义字段”区域,通常会有一个“添加字段”按钮,点击它。
此时会弹出一个表单,需要你填写字段的详细信息:
- 参数名:这是字段的中文显示名称,比如“品牌”、“产地”或“尺寸”。它会在后台编辑内容时显示给内容编辑者。
- 调用字段:这是自定义字段在前端模板中被调用的唯一标识符。务必使用英文字母、数字和下划线,并且建议采用驼峰命名法(例如:
productBrand、originPlace)。一旦创建,这个字段名就固定了,后续在模板中调用时必须精确匹配。 - 字段类型:根据你希望收集的数据类型,从下拉列表中选择,例如“单行文本”、“数字”或“下拉选择”。
- 是否必填:如果该字段在发布内容时必须填写,请勾选此项。
- 默认值:你可以为字段设置一个默认值。对于“单项选择”、“多项选择”和“下拉选择”类型的字段,这里需要输入每个选项值,每行一个。例如,为“颜色”字段设置“红色”、“蓝色”、“黑色”等选项。
填写完毕后,点击“确定”保存这个自定义字段。你可以重复这个过程,为你的内容模型添加更多所需的自定义字段。
保存模型设置 添加完所有自定义字段后,别忘了点击模型编辑页面底部的“提交”按钮,保存对内容模型的更改。
现在,当你进入“内容管理”下,选择对应模型(例如“产品模型”)的分类,并点击“添加文档”或“编辑文档”时,你就会在“其他参数”的折叠框中看到这些新创建的自定义字段了,内容编辑者可以在这里为每篇文档填写相应的信息。
第三部分:在前端模板中调用自定义字段
创建并填写了自定义字段的内容,接下来最关键的一步就是如何在你的网站前端模板中将它们展示出来。安企CMS的模板引擎类似Django语法,主要通过双花括号 {{变量}} 来输出变量值,以及单花括号加百分号 {% 标签 %} 来执行逻辑控制。
我们将主要通过两种方式来调用自定义字段:
1. 直接通过字段名调用 (针对已知且独立的字段)
如果你知道自定义字段的“调用字段”名称,并且这个字段的值通常是单一的(比如“品牌”、“作者”),你可以直接在模板中使用 archiveDetail 标签或 archive 对象的点语法来调用它。
假设我们在产品模型中添加了一个“品牌”字段,其“调用字段”为 productBrand。在产品详情页 ({模型table}/detail.html 或自定义产品详情模板) 中,你可以这样调用:
{# 假设当前页面是产品详情页,直接通过archive对象调用自定义字段 #}
<div>产品品牌:{{ archive.productBrand }}</div>
{# 或者使用archiveDetail标签,明确指定要调用的自定义字段名 #}
<div>产品品牌:{% archiveDetail with name="productBrand" %}</div>
{# 你也可以将结果赋值给一个变量再使用 #}
{% archiveDetail brandName with name="productBrand" %}
<div>产品品牌:{{ brandName }}</div>
这种方法简洁明了,适用于你清楚知道要调用哪个特定字段的情况。
2. 循环调用所有自定义字段 (针对动态展示或未知字段)
当你的自定义字段数量较多,或者你希望动态地、统一地展示所有附加参数时,archiveParams 标签就派上用场了。它会返回一个包含所有自定义字段的列表,你可以通过循环来遍历并展示它们。
{# 在文档详情页,循环展示所有自定义字段 #}
<div>
<h3>其他产品参数:</h3>
{% archiveParams params %}
<ul>
{% for item in params %}
<li>
<span>{{ item.Name }}:</span> {# item.Name 是字段的“参数名”(中文显示名称) #}
<span>{{ item.Value }}</span> {# item.Value 是字段的值 #}
</li>
{% endfor %}
</ul>
{% endarchiveParams %}
</div>
这种方式非常灵活,尤其适合那些自定义字段内容较多的区域,例如产品详情页的技术参数列表。即使你后续在后台添加或修改了自定义字段,前端模板也无需更改,会自动适应显示。
在文档列表页调用自定义字段的特殊情况:
如果你想在文章列表或产品列表的每个条目中展示其自定义字段(例如,在产品卡片中显示“品牌”),你需要确保 archiveList 标签已经获取了所需的文档数据,并在循环中使用 archiveParams 结合当前文档的ID来