如何在安企CMS中为不同的内容模型(如文章、产品)自定义字段并显示?

安企CMS以其灵活的内容模型设计,让网站内容的管理和展示变得异常强大。除了文章标题、发布时间、内容主体等通用字段外,我们常常需要为特定的内容类型(如产品、新闻、案例等)添加独有的信息。例如,产品可能需要“产品型号”、“颜色选项”、“尺寸”,而新闻可能需要“文章来源”或“作者介绍”。安企CMS的自定义字段功能,正是为了满足这种个性化需求而生。

这篇文章将详细指导您如何在安企CMS中为不同的内容模型自定义字段,并最终在网站前端模板中优雅地展示这些信息。


第一步:理解内容模型与自定义字段的价值

在开始配置之前,我们先来简单理解一下安企CMS的“内容模型”概念。内容模型就像是内容的“骨架”,它定义了某类内容应该包含哪些字段。默认情况下,安企CMS会内置“文章模型”和“产品模型”等。

自定义字段的引入,赋予了内容极大的灵活性:

  1. 丰富内容维度: 能够为文章添加“作者简介”、为产品添加“规格参数”等,让内容信息更全面。
  2. 提升管理效率: 将特定信息结构化,方便后台编辑和管理。
  3. 优化前端展示: 可以在前端模板中精确地调用和展示这些自定义信息,打造更符合业务需求的页面布局。

通过自定义字段,您可以根据业务需求构建高度个性化的内容体系。


第二步:在安企CMS后台配置自定义字段

配置自定义字段是实现个性化内容展示的基础。这一过程在安企CMS后台的“内容模型”管理中完成。

  1. 进入内容模型管理: 登录安企CMS后台,在左侧导航栏找到“内容管理”,点击展开后选择“内容模型”。

  2. 选择或创建内容模型:

    • 修改现有模型: 您可以选择已有的“文章模型”或“产品模型”进行编辑。点击模型名称旁边的“修改”按钮进入。
    • 新增自定义模型: 如果您的业务有全新的内容类型,例如“案例展示”、“团队成员”等,可以点击“新增模型”来创建一个全新的内容模型。在这里,您需要为新模型定义“模型名称”、“模型表名”(用于数据库存储,通常为英文小写)和“URL别名”(用于前端URL)。
  3. 添加自定义字段: 进入模型编辑页面后,您会看到“内容模型自定义字段”区域。在这里,您可以为该模型添加专属字段:

    • 参数名: 这是字段在后台显示给编辑人员的中文名称,例如“文章作者”、“产品型号”、“颜色选项”等。
    • 调用字段: 这是在模板中引用此字段的唯一标识,务必使用英文小写字母(例如 authorproductModelcolors)。这个名称将直接影响您在前端模板中的调用方式,所以请确保其简洁且具有辨识度。
    • 字段类型: 安企CMS提供了多种字段类型以适应不同数据格式:
      • 单行文本: 适用于短文本输入,如“作者”、“产品型号”。
      • 数字: 仅限数字输入,如“库存量”、“价格”。
      • 多行文本: 适用于长文本输入,如“作者简介”、“产品描述(富文本)”。
      • 单项选择、多项选择、下拉选择: 适用于需要从预设选项中选择的情况,例如“产品颜色”可以选择“红、蓝、绿”。当选择这些类型时,您需要在“默认值”区域,每行输入一个选项,系统会自动解析为可选项。
    • 是否必填: 根据内容发布要求,勾选此项可强制编辑人员填写该字段。
    • 默认值: 为字段预设一个值。对于单项/多项/下拉选择类型,这里是定义所有可选项的地方,每行一个。

    完成字段添加后,记得点击页面底部的“保存”按钮,使更改生效。


第三步:在内容发布时填写自定义字段

当您在后台配置完自定义字段后,这些字段会自动集成到相应内容模型的发布和编辑界面中。

例如,如果您为“文章模型”添加了“文章来源”和“作者简介”字段:

  1. 在左侧导航栏点击“内容管理”下的“发布文档”或“文档管理”后编辑现有文档。
  2. 选择或确认文档所属的分类(该分类应属于您修改过的内容模型)。
  3. 滚动页面,在“其他参数”的折叠区域内,您会看到新添加的自定义字段。在这里,内容编辑人员就可以根据字段类型填入相应的信息了。

请确保内容编辑人员了解这些新字段的用途,并正确填写,以便前端能够展示准确的信息。


第四步:在前端模板中显示自定义字段

将后台填写的自定义字段信息呈现在网站前台,是实现个性化展示的关键一步。安企CMS的模板系统提供了灵活的标签来完成这一任务。

安企CMS的模板文件通常存放在 /template 目录下,并使用类似 Django 模板引擎的语法。您需要找到对应内容模型详情页面的模板文件,例如文章详情页可能是 {模型table}/detail.htmlarchive/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.Nameitem.FieldName 来对特定字段进行特殊处理或