安企CMS(AnQiCMS)凭借其强大的模板功能,为网站内容的灵活展示提供了坚实的基础。在网站运营中,我们经常会遇到需要展示特定分类下的文档列表这一需求,例如新闻动态、产品介绍、博客文章等。掌握如何利用模板标签实现这一功能,将大大提升网站内容的组织效率和用户体验。
核心标签:archiveList的妙用
在安企CMS中,要获取特定分类下的文档列表,核心标签就是archiveList。它就像一个内容筛选器,能够根据您设定的条件,精准地从网站内容库中提取出您需要的文档。archiveList标签的基本使用结构如下:
{% archiveList 变量名称 with 参数1="值1" 参数2="值2" %}
{# 在这里循环输出文档内容 #}
{% endarchiveList %}
其中,变量名称是您为获取到的文档列表自定义的一个临时名称,方便在后续的模板代码中进行引用。
关键参数解析
为了让archiveList标签精确地理解您的意图,我们需要配合使用一系列参数来细化筛选条件:
categoryId:这是指定分类的核心参数。您可以通过提供一个或多个分类的ID来明确想要获取哪些分类下的文档。例如,如果您想获取ID为1的文章分类下的文档,可以这样写:categoryId="1"。如果需要同时获取ID为1、2、3的多个分类下的文档,只需用逗号分隔ID:categoryId="1,2,3"。值得注意的是,如果您的模板当前正处于某个分类页面(比如“公司新闻”分类页面),archiveList通常会智能地识别当前分类的ID,此时您可以省略categoryId。但如果您想明确地不自动读取当前分类ID,或者要获取一个与当前页面不相关的分类ID,可以设置为categoryId="0"。moduleId:安企CMS支持文章、产品等多种内容模型。此参数用于指定您希望获取的是哪个模型下的文档。例如,moduleId="1"通常对应文章模型,而moduleId="2"可能对应产品模型。这些模型ID可以在安企CMS后台的“内容管理”->“内容模型”中查看和管理,明确指定有助于确保获取到正确类型的内容。type:此参数决定了文档列表的输出方式,最常用的两个值是"list"和"page"。- 当
type="list"时,archiveList将按照您通过limit参数设定的数量,直接输出文档列表,不进行分页处理。这非常适合在网站首页、侧边栏或底部区域展示少量的热门、最新或推荐文档。 - 当
type="page"时,archiveList会为文档列表生成分页数据。这意味着您可以结合pagination标签,为用户提供一个包含“上一页”、“下一页”和页码的完整分页浏览体验。
- 当
limit:用于控制您希望显示多少条文档。例如,limit="10"表示将显示10条文档。limit参数还支持一种“偏移量”模式,例如limit="2,10",表示系统会跳过前2条文档(索引从0开始计数),然后获取接下来的10条文档。这在某些特定的内容布局或个性化推荐场景下非常实用。order:文档的排序方式。您可以根据自己的需求选择不同的排序规则,例如order="id desc"表示按文档ID降序(通常代表最新发布),order="views desc"表示按浏览量降序(最受欢迎),或者order="sort desc"(按后台自定义排序)等等。flag:如果您在后台给文档设置了推荐属性(如“头条[h]”、“推荐[c]”、“幻灯[f]”等),可以通过flag参数来筛选带有特定属性的文档。例如,flag="c"将只显示被标记为“推荐”的文档。
实践操作示例
为了更好地理解这些参数的运用,我们来看几个实际场景:
场景一:在首页展示“公司新闻”分类下的最新5篇文档
假设“公司新闻”分类的ID是5,文章模型的ID是1。
<div class="news-section">
<h3>公司新闻</h3>
<ul>
{% archiveList latestNews with moduleId="1" categoryId="5" order="id desc" limit="5" %}
{% for item in latestNews %}
<li>
<a href="{{ item.Link }}">
<h4>{{ item.Title }}</h4>
<p>{{ item.Description|truncatechars:80 }}</p> {# 截取描述前80个字符,增加易读性 #}
<span>发布时间:{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
</a>
</li>
{% empty %} {# 如果没有文档,显示此内容 #}
<li>暂无新闻动态。</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>