在构建和运营网站时,如何有效地组织和呈现内容是提升用户体验和内容发现效率的关键。对于使用安企CMS(AnQiCMS)的朋友来说,灵活地对文档列表进行排序是一项非常实用的功能。无论是希望访客优先看到最热门的文章,还是最新的动态,AnQiCMS都提供了简洁而强大的方式来实现。
通常,当我们想要展示一系列文档时,例如博客文章、产品介绍或新闻列表,我们会希望它们能够按照特定的逻辑顺序排列。最常见的需求便是按照文档的浏览量(热门程度)或者发布时间(最新程度)进行排序。安企CMS为此提供了专门的模板标签,让您可以轻松地在网站前端实现这些排序逻辑。
核心工具:archiveList 文档列表标签
在安企CMS的模板体系中,archiveList 标签是用于获取文档列表的核心工具。它功能强大,可以通过各种参数来筛选、限制和排序您想要展示的文档。所有的排序逻辑,都将围绕这个标签的 order 参数展开。
这个标签的基本使用形式是这样的:
{% archiveList 变量名称 with 参数="值" %}
{# 在这里循环显示文档内容 #}
{% endarchiveList %}
其中,变量名称 可以是您自定义的一个名称,例如 archives,用于在循环中引用每一篇文档。参数 和 值 则是控制文档列表行为的关键。
排序方式一:按浏览量(Views)排序
如果您的目标是让访客一眼就能看到网站上最受欢迎、被阅读次数最多的内容,那么按照浏览量降序排列是一个非常好的选择。安企CMS的 archiveList 标签提供了 views desc 这个参数值,用于实现这一功能。desc 表示降序排列,即从高到低。
例如,要在您的网站首页或者特定分类页显示10篇浏览量最高的文章,您可以这样编写模板代码:
<div class="most-popular-articles">
<h2>热门文章</h2>
<ul>
{% archiveList archives with type="list" order="views desc" limit="10" %}
{% for item in archives %}
<li>
<a href="{{ item.Link }}" title="{{ item.Title }}">
<h3>{{ item.Title }}</h3>
<p>浏览量:{{ item.Views }}</p>
</a>
</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>
在这段代码中:
type="list"表示我们获取的是一个普通列表,而不是用于分页的列表。order="views desc"明确指定了按文档的浏览量(Views)进行降序排序。limit="10"则限制了只显示前10篇最热门的文章。- 在
for循环内部,item.Link获取文档链接,item.Title获取文档标题,item.Views则显示文档的浏览量。
通过这样的设置,您的网站将动态地展示那些最吸引访客目光的内容。
排序方式二:按发布时间(CreatedTime)排序
对于新闻动态、最新产品发布或时效性较强的内容,我们更倾向于按照发布时间从新到旧的顺序展示,让访客能够及时了解到最新信息。在安企CMS中,文档的 Id 通常是自动递增的,因此按照 id desc 进行排序,能够很有效地实现按发布时间从新到旧的排列。
要展示最新的文档,您可以这样修改 archiveList 标签:
<div class="latest-articles">
<h2>最新动态</h2>
<ul>
{% archiveList archives with type="list" order="id desc" limit="5" %}
{% for item in archives %}
<li>
<a href="{{ item.Link }}" title="{{ item.Title }}">
<h3>{{ item.Title }}</h3>
<p>发布时间:{{ stampToDate(item.CreatedTime, "2006-01-02 15:04") }}</p>
</a>
</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>
在这里:
order="id desc"告诉系统按照文档的ID降序排列,由于ID通常是按文档创建顺序分配的,这相当于实现了按最新发布时间排序。item.CreatedTime获取文档的创建时间,它是一个时间戳。stampToDate(item.CreatedTime, "2006-01-02 15:04")是一个非常有用的辅助函数,它能将时间戳格式化为我们更容易阅读的日期时间字符串。"2006-01-02 15:04"是Go语言的时间格式化标准,您可以根据需要调整来显示年-月-日、小时:分钟等信息。
结合分页功能使用
当您的文档数量非常庞大时,仅仅显示一个列表是不够的,通常还需要搭配分页功能。在 archiveList 标签中,只需要将 type 参数设置为 page,然后结合 pagination 标签即可实现。
例如,一个带有分页的最新文章列表可以这样实现:
<div class="paginated-latest-articles">
<h2>所有文章</h2>
<ul>
{% archiveList archives with type="page" order="id desc" limit="10" %}
{% for item in archives %}
<li>
<a href="{{ item.Link }}" title="{{ item.Title }}">
<h3>{{ item.Title }}</h3>
<p>发布时间:{{ stampToDate(item.CreatedTime, "2006-01-02") }}</p>
</a>
</li>
{% endfor %}
{% endarchiveList %}
</ul>
{# 分页代码 #}
<div class="pagination-controls">
{% pagination pages with show="5" %}
{% if pages.PrevPage %}<a href="{{ pages.PrevPage.Link }}">上一页</a>{% endif %}
{% for page in pages.Pages %}
<a href="{{ page.Link }}" class="{% if page.IsCurrent %}active{% endif %}">{{ page.Name }}</a>
{% endfor %}
{% if pages.NextPage %}<a href="{{ pages.NextPage.Link }}">下一页</a>{% endif %}
{% endpagination %}
</div>
</div>
在这里,type="page" 告诉 archiveList 标签这是一个需要分页的列表,并且 limit="10" 定义了每页显示10篇文档。紧随其后的 pagination 标签则会自动生成页码链接,方便访客浏览所有页面。
总结操作步骤
要在安企CMS中按浏览量或发布时间对文档列表进行排序,您只需遵循以下步骤:
- 确定需要修改的模板文件:这通常是网站首页模板 (
index/index.html)、分类列表页模板 ({模型table}/list.html) 或其他包含文档列表的部分。 - 找到
archiveList标签:在模板文件中定位到负责显示文档列表的{% archiveList ... %}代码块。 - 调整
order参数:- 若要按浏览量从高到低排序,请将
order参数设置为order="views desc"。 - 若要按发布时间从新到旧排序,请将
order参数设置为order="id desc"。
- 若要按浏览量从高到低排序,请将
- 保存并更新缓存:保存模板文件,如果网站开启了缓存,记得在后台更新系统缓存,以便新的排序规则生效。
安企CMS的模板标签设计使得内容排序变得直观易用,通过简单的参数调整,就可以让您的网站内容以最符合访客需求的方式呈现,极大地提升了网站的实用性和用户体验。
常见问题 (FAQ)
问:除了降序(desc),我能否按升序(asc)排列文档? 答:当然可以。在
order参数中,除了desc(降序),您也可以使用asc(升序)。例如,order="views asc"将会按浏览量从低到高排序,而order="id asc"则会按最早发布的文档进行排序。问:
order="id desc"和order="CreatedTime desc"有什么区别,我应该选择哪个来按发布时间排序? 答:在安企CMS中,order参数直接支持id desc来根据文档ID进行降序排序。由于文档ID通常是系统创建时自动分配的唯一且递增的标识,因此id desc能够非常有效地实现按发布时间从新到旧的排序。而CreatedTime字段本身虽然存储了发布时间