在网站运营中,我们常常会遇到这样一种需求:不同的内容类型需要不同的展示方式。一篇新闻文章的布局可能与一个产品详情页大相径庭,而一个团队成员介绍页面又可能有着自己独特的风格。安企CMS(AnQiCMS)的灵活内容模型正是为了解决这一痛点而设计的,它允许我们深度定制内容的结构和最终的展示布局,从而为访客提供**的浏览体验。
理解内容模型的核心价值
安企CMS的核心优势之一,就是其“灵活的内容模型”功能。简单来说,内容模型就像是内容的“骨架”和“身份证明”。它定义了某一类内容应该包含哪些字段(例如,文章有标题、作者、发布日期;产品有名称、价格、库存、产品图片集),以及这些字段的类型。
这种灵活性带来的用户价值是巨大的。我们可以根据业务需求自定义各种内容结构,比如:
- 文章模型: 包含标题、正文、关键词、摘要、封面图。
- 产品模型: 包含产品名称、详细描述、价格、库存、产品参数(如颜色、尺寸)、多角度图片。
- 案例模型: 包含案例标题、客户名称、完成日期、案例详情、相关图片。
- 团队成员模型: 包含姓名、职位、个人简介、头像、社交媒体链接。
通过为每种内容类型创建专属的模型,不仅能更高效地管理和录入内容,更重要的是,它为我们定制这些内容在前端的展示布局奠定了基础。
构建你的专属内容模型
要开始创建或调整内容模型,我们可以前往安企CMS后台的“内容管理”部分,找到“内容模型”选项。系统通常会内置文章和产品等常用模型,我们可以选择修改它们,或根据需要新增自定义模型。
在创建新模型时,需要注意以下几个关键点:
- 模型名称与表名: 模型名称是后台显示的中文名称,便于识别。模型表名则是数据存储在数据库中的标识,通常建议使用英文小写字母,并且一旦设定便无法更改,因此需要慎重。
- URL别名: 这个别名将用于前端URL中,对SEO非常重要,同样建议使用英文小写字母。
- 自定义字段: 这是内容模型最核心的灵活之处。我们可以为模型添加各种自定义字段,来精确定义内容结构。
- 单行文本: 适用于简短信息,如产品型号、作者姓名。
- 数字: 适用于价格、库存、数量等。
- 多行文本: 适用于较长的描述,如产品简介、文章摘要。
- 单项选择/多项选择/下拉选择: 适用于预设选项,如产品颜色、服务类型。
- 图片集: 非常适合产品展示,可以上传多张图片。
- 是否必填: 确保重要信息不会遗漏。
例如,创建一个“产品”模型时,我们可以添加“价格”(数字)、“产品特点”(多行文本)、“颜色”(多项选择)和“产品图集”(图片集)等字段。这些自定义字段将直接关联到内容的录入界面,并在后续的模板设计中被调用。
内容与分类的精细化管理
在内容模型搭建完毕后,发布内容时,我们可以选择对应的分类,而每个分类又会绑定一个内容模型。这意味着,当我们选择了一个绑定“产品模型”的分类时,内容录入界面就会自动展示产品模型中定义的所有字段,让内容录入变得结构化且高效。
此外,安企CMS还支持为特定的分类或独立的文档指定自定义模板。这是一个至关重要的功能,它意味着我们可以:
- 为所有“新闻”分类的内容使用统一的文章列表和详情页模板。
- 为“公司产品”分类下的所有产品使用一个标准的详情模板,但为“明星产品”这个子分类定制一个更具吸引力的详情页模板。
- 甚至为某一篇“特别推荐”的文章或某个“关于我们”的单页面,设计一个完全专属的布局。
通过后台设置分类或文档时,在“其他参数”中填入自定义的模板文件名(例如 product-special.html),即可实现这一目的。
灵活定义内容的展示布局
当我们有了定义好的内容模型和定制化的模板应用方式后,下一步就是在模板文件中实现这些内容的展示布局。安企CMS的模板系统基于类似Django的语法,强大且易学。
模板文件的组织: 安企CMS的模板文件位于
/template目录下,通常会根据内容类型和页面功能进行组织。例如,article/detail.html可能是文章详情页的默认模板,product/list.html可能是产品列表页的默认模板。当我们希望自定义布局时,可以创建新的模板文件,例如product/detail-custom.html,然后在后台将它分配给特定的产品分类或产品本身。核心标签的运用: 在模板文件中,我们主要通过安企CMS提供的各种标签来获取并展示内容。
archiveList和archiveDetail标签:这是获取内容(文档)列表和详情的核心标签。通过moduleId、categoryId等参数,我们可以精确地获取到所需的内容。- 要显示内容的标准字段(如
Title、Description),可以直接使用{{item.Title}}或{{archive.Description}}。 - 对于在内容模型中自定义的字段,我们可以直接通过
{{item.自定义字段名}}或{{archive.自定义字段名}}来访问。例如,如果产品模型有一个price字段,在详情页模板中就可以用{{archive.price}}来显示。 - 如果自定义字段较多,或者想以更灵活的方式处理,
archiveParams标签能够获取当前文档的所有自定义参数,然后通过for循环遍历展示,如:
- 要显示内容的标准字段(如