安企CMS以其灵活的内容模型设计,让网站内容的管理和展示变得异常强大。除了文章标题、发布时间、内容主体等通用字段外,我们常常需要为特定的内容类型(如产品、新闻、案例等)添加独有的信息。例如,产品可能需要“产品型号”、“颜色选项”、“尺寸”,而新闻可能需要“文章来源”或“作者介绍”。安企CMS的自定义字段功能,正是为了满足这种个性化需求而生。
这篇文章将详细指导您如何在安企CMS中为不同的内容模型自定义字段,并最终在网站前端模板中优雅地展示这些信息。
第一步:理解内容模型与自定义字段的价值
在开始配置之前,我们先来简单理解一下安企CMS的“内容模型”概念。内容模型就像是内容的“骨架”,它定义了某类内容应该包含哪些字段。默认情况下,安企CMS会内置“文章模型”和“产品模型”等。
自定义字段的引入,赋予了内容极大的灵活性:
- 丰富内容维度: 能够为文章添加“作者简介”、为产品添加“规格参数”等,让内容信息更全面。
- 提升管理效率: 将特定信息结构化,方便后台编辑和管理。
- 优化前端展示: 可以在前端模板中精确地调用和展示这些自定义信息,打造更符合业务需求的页面布局。
通过自定义字段,您可以根据业务需求构建高度个性化的内容体系。
第二步:在安企CMS后台配置自定义字段
配置自定义字段是实现个性化内容展示的基础。这一过程在安企CMS后台的“内容模型”管理中完成。
进入内容模型管理: 登录安企CMS后台,在左侧导航栏找到“内容管理”,点击展开后选择“内容模型”。
选择或创建内容模型:
- 修改现有模型: 您可以选择已有的“文章模型”或“产品模型”进行编辑。点击模型名称旁边的“修改”按钮进入。
- 新增自定义模型: 如果您的业务有全新的内容类型,例如“案例展示”、“团队成员”等,可以点击“新增模型”来创建一个全新的内容模型。在这里,您需要为新模型定义“模型名称”、“模型表名”(用于数据库存储,通常为英文小写)和“URL别名”(用于前端URL)。
添加自定义字段: 进入模型编辑页面后,您会看到“内容模型自定义字段”区域。在这里,您可以为该模型添加专属字段:
- 参数名: 这是字段在后台显示给编辑人员的中文名称,例如“文章作者”、“产品型号”、“颜色选项”等。
- 调用字段: 这是在模板中引用此字段的唯一标识,务必使用英文小写字母(例如
author、productModel、colors)。这个名称将直接影响您在前端模板中的调用方式,所以请确保其简洁且具有辨识度。 - 字段类型: 安企CMS提供了多种字段类型以适应不同数据格式:
- 单行文本: 适用于短文本输入,如“作者”、“产品型号”。
- 数字: 仅限数字输入,如“库存量”、“价格”。
- 多行文本: 适用于长文本输入,如“作者简介”、“产品描述(富文本)”。
- 单项选择、多项选择、下拉选择: 适用于需要从预设选项中选择的情况,例如“产品颜色”可以选择“红、蓝、绿”。当选择这些类型时,您需要在“默认值”区域,每行输入一个选项,系统会自动解析为可选项。
- 是否必填: 根据内容发布要求,勾选此项可强制编辑人员填写该字段。
- 默认值: 为字段预设一个值。对于单项/多项/下拉选择类型,这里是定义所有可选项的地方,每行一个。
完成字段添加后,记得点击页面底部的“保存”按钮,使更改生效。
第三步:在内容发布时填写自定义字段
当您在后台配置完自定义字段后,这些字段会自动集成到相应内容模型的发布和编辑界面中。
例如,如果您为“文章模型”添加了“文章来源”和“作者简介”字段:
- 在左侧导航栏点击“内容管理”下的“发布文档”或“文档管理”后编辑现有文档。
- 选择或确认文档所属的分类(该分类应属于您修改过的内容模型)。
- 滚动页面,在“其他参数”的折叠区域内,您会看到新添加的自定义字段。在这里,内容编辑人员就可以根据字段类型填入相应的信息了。
请确保内容编辑人员了解这些新字段的用途,并正确填写,以便前端能够展示准确的信息。
第四步:在前端模板中显示自定义字段
将后台填写的自定义字段信息呈现在网站前台,是实现个性化展示的关键一步。安企CMS的模板系统提供了灵活的标签来完成这一任务。
安企CMS的模板文件通常存放在 /template 目录下,并使用类似 Django 模板引擎的语法。您需要找到对应内容模型详情页面的模板文件,例如文章详情页可能是 {模型table}/detail.html 或 archive/detail.html,产品详情页可能是 product/detail.html。
在这些模板文件中,您可以使用以下两种主要方式来显示自定义字段:
方法一:通过 archiveDetail 标签直接调用(适用于已知字段名)
如果您确切知道自定义字段的“调用字段”名称,并且该字段只包含简单文本或数字,可以直接使用 archiveDetail 标签来获取并显示它。
例如,您为“文章模型”添加了一个“调用字段”为 author 的单行文本自定义字段:
{# 在文章详情页模板中 #}
<p>
文章作者:{% archiveDetail with name="author" %}
</p>
{# 或者,如果已将当前文档详情赋值给archive变量,可以直接通过点语法访问 #}
<p>
文章作者:{{ archive.author }}
</p>
这种方式简洁明了,适用于您只需要显示特定自定义字段的场景。
如果您为“产品模型”添加了一个“调用字段”为 colors 的下拉选择(或多选)字段,该字段可能有多个值,或者一个简单的图片字段 productImage:
{# 在产品详情页模板中 #}
<p>
产品颜色:{{ product.colors }} {# 直接显示选中的值 #}
</p>
<p>
产品图片:<img src="{{ product.productImage }}" alt="产品图片">
</p>
特别注意:
- 如果自定义字段是多行文本,且希望支持 HTML 格式(例如,后台编辑器提供了富文本编辑功能),在显示时务必添加
|safe过滤器,以避免 HTML 代码被转义而直接显示出来:<div class="author-bio"> <h4>作者简介</h4> {% archiveDetail with name="authorBio" %}{{ archive.authorBio|safe }} </div>
方法二:通过 archiveParams 标签遍历所有自定义字段(适用于动态展示或复杂结构)
有时您可能希望遍历显示某个内容模型下的所有自定义字段,或者某个字段的结构比较复杂(例如图片组、多选框的多个值)。这时,archiveParams 标签就非常有用。它会返回一个包含所有自定义字段的数组,您可以循环遍历它们。
{# 在文章或产品详情页模板中 #}
<div class="custom-fields">
<h3>详细参数</h3>
{% archiveParams params %}
{% for item in params %}
{# 这里的item.Name是您在后台设置的“参数名”,item.Value是对应的值 #}
<div>
<span>{{ item.Name }}:</span>
<span>
{% if item.Value is iterable %} {# 如果是数组或切片,例如多选框的值 #}
{% for sub_item in item.Value %}
{{ sub_item }} {% if not forloop.Last %},{% endif %}
{% endfor %}
{% else %}
{{ item.Value|safe }} {# 确保HTML内容不被转义 #}
{% endif %}
</span>
</div>
{% endfor %}
{% endarchiveParams %}
</div>
提示:
archiveParams标签默认获取当前页面的文档自定义字段。item.Name会显示您在后台设置的中文“参数名”。item.Value会显示用户填写的字段值。- 通过
{% if item.Value is iterable %}可以判断字段值是否为可迭代类型(如多选字段的多个值),然后进行相应的循环展示。 - 您也可以在这个循环中,根据
item.Name或item.FieldName来对特定字段进行特殊处理或