在安企CMS中,单页面是一种非常灵活的内容形式,它不依赖于复杂的分类或模型结构,常常用于发布“关于我们”、“联系方式”、“服务介绍”等独立且内容相对固定的页面。这些页面的特点是内容独立,通常只需要一个页面来承载其信息。当您需要在网站的特定位置,比如底部导航、侧边栏或者某个专题页面上,展示这些单页面的列表时,安企CMS提供了专门的pageList标签,让这一操作变得简单直观。

了解安企CMS中的单页面

在安企CMS的后台管理界面,您可以在“页面资源”下的“页面管理”中创建和管理单页面。每个单页面都可以拥有独立的标题、内容、SEO信息甚至自定义URL和独立的模板文件。这种设计让单页面成为构建网站基础结构和展示特定独立信息的强大工具。例如,您可以为“公司简介”创建一个单页面,为其设置一个简洁的URL别名,并指定一个专属的页面模板来展示其独特的设计。

pageList标签:获取单页面列表的核心

要获取这些在后台创建的单页面列表并在前台模板中显示,您需要使用pageList标签。这个标签的作用就是将所有可用的单页面数据提取出来,供您在模板中进行遍历和展示。

使用pageList标签的基本语法非常直接:

{% pageList pages %}
    {# 在这里遍历 pages 变量,获取每个单页面的信息 #}
{% endpageList %}

在这段代码中,pages是一个您可以自定义的变量名称,它会承载所有单页面的数据集合。您需要使用for循环来遍历这个集合,从而访问每个单页面的具体信息。

遍历与显示单页面信息

{% pageList pages %}{% endpageList %}标签之间,您可以像处理其他列表数据一样,使用{% for item in pages %}循环来逐一处理每个单页面。item变量在每次循环中代表一个独立的单页面对象,它包含了这个单页面的所有可用字段。

一个单页面对象item通常包含以下常用字段,您可以根据需要进行调用:

  • Id:单页面的唯一标识ID。
  • Title:单页面的标题。
  • Link:单页面的访问链接。
  • Description:单页面的简要描述。
  • Content:单页面的详细内容。
  • Logo:单页面的封面大图(如果有设置)。
  • Thumb:单页面的缩略图(如果有设置)。

举个例子,如果您想在网站底部列出所有单页面的标题和链接,可以这样编写模板代码:

<nav class="footer-nav">
    <h3>我们的服务</h3>
    <ul>
        {% pageList pages %}
            {% for item in pages %}
                <li><a href="{{ item.Link }}">{{ item.Title }}</a></li>
            {% endfor %}
        {% endpageList %}
    </ul>
</nav>

这段代码会生成一个无序列表,其中每个列表项都是一个单页面的标题,点击后跳转到对应的单页面。

高级应用与限制

pageList标签的一个特点是,它旨在获取所有可用的单页面。这意味着它不直接提供按ID或分类进行过滤的参数。如果您有特定需求,需要排除某些单页面或者只显示符合特定条件的页面,您可以在for循环内部使用条件判断语句({% if %})来实现。

例如,如果您想排除ID为1的“关于我们”页面,可以这样修改:

<nav class="footer-nav">
    <h3>我们的服务</h3>
    <ul>
        {% pageList pages %}
            {% for item in pages %}
                {% if item.Id != 1 %} {# 排除ID为1的单页面 #}
                    <li><a href="{{ item.Link }}">{{ item.Title }}</a></li>
                {% endif %}
            {% endfor %}
        {% endpageList %}
    </ul>
</nav>

对于多站点管理的用户,pageList标签还支持siteId参数。如果您创建了多个站点并且希望调用特定站点的单页面数据,可以通过siteId来指定。例如:{% pageList pages with siteId="2" %}...{% endpageList %}

在实际使用中,如果单页面的内容包含HTML标签,并且您希望这些标签能够被浏览器正常解析而不是作为纯文本显示,记得在输出item.Content时使用|safe过滤器,例如:{{ item.Content|safe }}

通过pageList标签,您可以轻松地在安企CMS模板中构建灵活多样的单页面导航和内容展示模块,极大地提升网站内容的组织性和用户体验。


常见问题解答 (FAQ)

  1. pageList 标签能否根据特定条件(如分类、ID)过滤单页面? pageList 标签设计用于获取所有单页面的列表,它不直接提供过滤单页面ID或分类的参数。如果您需要显示特定的单页面或排除某些页面,可以在标签内部使用 {% if %} 条件判断进行手动筛选。例如,{% if item.Id != 1 %} 可以排除ID为1的单页面。

  2. 如何在单页面列表中添加分页功能? pageList 标签本身不提供内置的分页功能,因为它旨在列出所有创建的单页面。如果您的网站有很多单页面并且需要分页,您可能需要考虑将这些“单页面”内容归入某个“文章模型”或“产品模型”下,然后使用支持分页的 archiveList 标签来管理和展示。或者,您可以在前端通过JavaScript实现分页效果。

  3. pageListarchiveList 有什么区别?什么时候应该使用它们? pageList 专门用于获取和展示在安企CMS后台“页面资源”->“页面管理”中创建的“单页面”内容,这些页面通常用于“关于我们”、“联系方式”等固定内容展示,数量相对较少且内容独立。而 archiveList 则用于获取和展示“内容管理”下“文档管理”中创建的文章、产品等“文档”内容,这些内容通常数量较多,且需要归类到特定的内容模型和分类下。简单来说,固定、独立的页面用 pageList,动态、分类化的内容用 archiveList