在安企CMS中管理和展示网站内容,尤其是文档列表,是日常运营中非常普遍的需求。安企CMS提供了强大且灵活的模板标签,让我们能够轻松地在网站前台调用、显示这些内容,并根据需要进行排序和筛选。本文将深入探讨如何利用安企CMS的模板功能,实现这些目标,让您的网站内容展示更具吸引力。
核心功能:archiveList 标签——展示文档内容的基础
要显示文档列表,我们主要会用到安企CMS的archiveList标签。这个标签是调用文档数据的核心,它能够根据各种条件检索出您想要展示的文档。
通常,您会在模板文件(例如列表页或首页)中这样使用它:
{% archiveList archives with type="list" limit="10" %}
{% for item in archives %}
<li>
<a href="{{ item.Link }}">
<h3>{{ item.Title }}</h3>
<p>{{ item.Description|truncatechars:100 }}</p>
<div>
<span>发布日期: {{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
<span>浏览量: {{ item.Views }}</span>
</div>
</a>
{% if item.Thumb %}
<img src="{{ item.Thumb }}" alt="{{ item.Title }}">
{% endif %}
</li>
{% empty %}
<li>暂时没有文档内容。</li>
{% endfor %}
{% endarchiveList %}
在这段代码中,archiveList 标签将检索到的文档集合赋值给了 archives 这个变量。接着,我们使用 {% for item in archives %} 循环遍历每一个文档,并通过 item.Title、item.Link、item.Description 等字段来显示文档的标题、链接和简介。stampToDate 是一个非常实用的函数,用于将时间戳格式化为我们可读的日期。如果没有任何文档,{% empty %} 块就会显示预设的提示信息。
archiveList 标签支持一系列参数,让您能够精确控制要显示哪些文档以及如何显示:
moduleId:指定内容模型的ID(例如,文章通常是1,产品可能是2),确保您调用的是正确类型的内容。categoryId:根据分类ID来筛选文档,您可以指定单个ID,也可以用逗号分隔多个ID,甚至可以使用child=true或child=false来决定是否包含子分类的文档。limit:控制显示文档的数量。例如limit="10"会显示最近的10条文档。它还支持offset模式,如limit="2,10"表示从第2条开始获取10条数据。type:这是非常关键的参数,它定义了列表的类型。type="list"用于简单列表展示,受limit参数限制。type="page"用于需要分页的列表,必须配合pagination标签使用。type="related"用于显示相关文档,通常在文档详情页使用。
order:用于指定文档的排序规则。
灵活掌控:文档列表的排序
安企CMS让文档的排序变得轻而易举,通过archiveList标签的order参数,您可以根据多种维度对文档进行排列。
- 按最新发布排序:使用
order="id desc"会将最新的文档排在前面。 - 按浏览量排序:
order="views desc"可以让浏览量最高的文档优先展示,适用于热门内容推荐。 - 按后台自定义排序:如果您在后台对文档进行了手动排序,
order="sort desc"会按照您自定义的顺序来显示。
例如,要显示某个分类下浏览量最高的前五篇文章,您可以这样编写:
{% archiveList hotArticles with categoryId="1" order="views desc" limit="5" %}
<h4>热门文章</h4>
<ul>
{% for item in hotArticles %}
<li><a href="{{ item.Link }}">{{ item.Title }} ({{ item.Views }}次浏览)</a></li>
{% endfor %}
</ul>
{% endarchiveList %}
精准定位:文档列表的筛选
筛选是内容运营中不可或缺的一环,安企CMS提供了多种筛选方式,帮助您将最贴切的内容呈现给用户。
按分类筛选:这是最基本的筛选方式。通过
categoryId="1"即可显示ID为1的分类下的所有文档。如果您想包含子分类,可以额外添加child=true。按推荐属性筛选:安企CMS允许您为文档设置多种推荐属性,例如“头条”、“推荐”、“幻灯”等。使用
flag参数可以调用这些特定属性的文档,如flag="h"调用头条文章,flag="c"调用推荐文章。关键词搜索筛选:当您需要在列表页中加入搜索功能时,
q参数非常有用。它会自动读取URL中的q查询参数作为搜索关键词,匹配文档标题。您可以在搜索页面的archiveList标签中省略q参数,系统会自动捕获URL中的搜索词。自定义参数筛选:
archiveFilters标签 当您的文档模型包含自定义字段(例如“颜色”、“尺寸”、“户型”等),并且希望用户能够通过这些自定义字段进行筛选时,archiveFilters标签就显得尤为强大。它会生成一个可供选择的筛选条件列表,每个条件都带有相应的链接,点击后即可触发筛选。
<div> <h5>筛选条件</h5> {% archiveFilters filters with moduleId="1" allText="不限" %} {% for item in filters %} <p>{{ item.Name }}:</p> <ul> {% for val in item.Items %} <li class="{% if val.IsCurrent %}active{% endif %}"> <a href="{{ val.Link }}">{{ val.Label }}</a> </li> {% endfor %} </ul> {% endfor %} {% endarchiveFilters %} </div>这里,
filters变量包含了所有可筛选的自定义参数及其选项。item.Name是参数名称(如“户型”),item.Items则是该参数下的所有可选值(如“一居室”、“两居室”),val.Link提供了点击后进行筛选的URL,val.IsCurrent则判断当前选项是否被选中。
流畅体验:实现文档列表的分页功能
对于内容量大的网站,分页是必不可少的功能。安企CMS的分页实现非常简洁,您只需要配合archiveList的type="page"参数和pagination标签即可。
- 设置
archiveList为分页模式:确保在archiveList标签中设置type="page",这样它才能响应分页请求并返回当前页的数据。 - **使用
pagination