安企CMS作为一款高效的内容管理系统,提供了丰富的功能来帮助运营者管理和展示网站内容。其中,“推荐属性”功能是一个非常实用的工具,它允许我们对文档进行灵活的标记,进而实现在网站不同区域动态筛选和展示特定内容。本文将详细探讨如何在安企CMS中利用推荐属性来筛选文档列表,让网站内容更具活力和吸引力。

第一部分:理解安企CMS的推荐属性

在安企CMS的后台,当我们发布或编辑一篇文档时,会看到一个名为“推荐属性”的设置项。这些属性就像是给文章贴上的不同标签,用于标识其重要性、在特定位置的展示资格或特殊的显示效果。系统内置了多种推荐属性,每种属性都对应一个简短的字母标识,方便在模板中进行调用:

  • 头条 [h]:通常用于网站首页最醒目的位置,展示最重要、最受关注的内容。
  • 推荐 [c]:泛指被编辑推荐的优质内容,可在多个推荐位出现。
  • 幻灯 [f]:常用于轮播图或大幅焦点图区域,吸引用户眼球。
  • 特荐 [a]:特别推荐的内容,可能具有更高的权重或独立展示区域。
  • 滚动 [s]:适用于新闻滚动、公告条等需要连续展示的场景。
  • 图片 [p]:表示该内容适合以图片为主的方式展示,例如图片新闻或图集。
  • 跳转 [j]:指示该文档是一个外部链接或站内跳转,点击后会直接跳转到指定URL。

在后台编辑文档时,我们可以根据内容的重要性或预期展示效果,勾选一个或多个推荐属性。例如,一篇最新的重要新闻,可以同时设置为“头条”和“推荐”,而一张精美的产品图集则可以设置为“幻灯”和“图片”。这种灵活的标记方式,为前台内容的动态展示奠定了基础。

第二部分:如何在模板中利用推荐属性筛选文档列表

要在网站前台根据这些推荐属性来筛选并展示文档列表,我们需要使用安企CMS模板中强大的archiveList标签。archiveList标签允许我们通过指定flag参数来筛选具有特定推荐属性的文档。

flag参数接受单个推荐属性的字母标识。虽然在后台编辑文档时可以为一篇文档选择多个推荐属性,但在前台模板中,每一次archiveList的调用,flag参数通常只对应一个推荐属性进行筛选。

以下是一个基本的archiveList标签使用示例,用于筛选出设置为“头条”属性的文章:

{# 筛选出最新5篇设置为“头条”属性的文章 #}
<div class="headlines-section">
    <h2>最新头条新闻</h2>
    <ul>
        {% archiveList topNews with moduleId="1" flag="h" limit="5" order="id desc" %}
            {% for item in topNews %}
                <li class="news-item">
                    <a href="{{ item.Link }}" title="{{ item.Title }}">{{ item.Title }}</a>
                    <span class="publish-date">发布日期: {{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
                </li>
            {% else %}
                <p>当前暂无头条新闻。</p>
            {% endfor %}
        {% endarchiveList %}
    </ul>
</div>

代码解析:

  • {% archiveList topNews with ... %}: 这是调用文档列表的核心标签。topNews是为此次查询结果定义的变量名,您可以在循环中使用它。
  • moduleId="1": 指定要查询的内容模型ID。安企CMS默认文章模型ID为1,产品模型ID为2。根据实际需求填写。
  • flag="h": 这是本主题的关键参数,它告诉系统只筛选出被标记为“头条”属性(h)的文档。
  • limit="5": 限制显示文档的数量为5篇。
  • order="id desc": 按照文档ID降序排列,通常意味着最新发布的文档排在前面。您也可以根据views desc(浏览量降序)或sort desc(后台自定义排序)等进行调整。
  • {% for item in topNews %} ... {% endfor %}: 遍历topNews变量中获取到的文档列表。
  • item.Linkitem.Title: 分别获取文档的链接和标题。
  • item.CreatedTimestampToDate(...): item.CreatedTime获取文档的创建时间戳,stampToDate过滤器则将其格式化为“年-月-日”的易读日期格式。
  • {% else %} ... {% endfor %}: 如果没有找到符合条件的文档,将显示此处的备用内容。

通过灵活调整flag参数的值以及结合其他筛选条件,您可以构建出各种动态且精准的文档列表。

第三部分:实战示例与代码解析

下面通过几个具体的实战示例,进一步演示如何根据推荐属性来筛选文档列表,以满足不同的网站内容展示需求。

示例一:首页幻灯片区域展示

假设您的网站首页有一个轮播图