如何在AnQiCMS模板中实现内容分页显示,并自定义页码导航样式?

📅 👁️ 68

当网站内容日益丰富,如何高效地展示大量信息,同时确保用户友好的浏览体验,是网站运营中不可或缺的一环。在AnQiCMS中,通过强大的模板标签系统,我们可以轻松实现内容的分页显示,并灵活定制页码导航的样式,让网站内容既丰富又整洁。


高效组织内容:实现内容列表的分页显示

在AnQiCMS的模板中,要实现内容的分页显示,核心在于使用archiveList标签来获取文档列表。这个标签功能强大,不仅能列出指定分类或模型的文档,还能直接配置为分页模式。

首先,在您的列表页模板(例如,针对文章模型的列表页通常是article/list.html,或者自定义的分类列表模板)中,您会用到archiveList标签。要开启分页功能,需要设置type参数为"page",并利用limit参数来定义每页显示的文章数量。例如,如果您想每页显示10篇文章,代码会是这样:

{% archiveList archives with type="page" limit="10" %}
    {% for item in archives %}
    <div class="article-item">
        <h2><a href="{{item.Link}}">{{item.Title}}</a></h2>
        <p>{{item.Description}}</p>
        <div class="meta">
            <span>分类:{% categoryDetail with name="Title" id=item.CategoryId %}</span>
            <span>发布日期:{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
            <span>阅读量:{{item.Views}}</span>
        </div>
    </div>
    {% empty %}
    <p>当前分类下暂时没有文章。</p>
    {% endfor %}
{% endarchiveList %}

在这段代码中,archiveList标签会将符合条件的文章数据加载到名为archives的变量中,并自动根据limit参数进行分页处理。在for循环中,item代表每一篇文章,您可以通过item.Titleitem.Linkitem.Description等方式访问文章的各项属性。{% empty %}标签则非常贴心地处理了当没有任何文章可显示时的场景,避免页面空白。

精细化控制:自定义页码导航样式

内容列表呈现后,接下来就是为用户提供便捷的页码导航。AnQiCMS为此提供了pagination标签。这个标签会根据archiveList标签生成的总页数和当前页码,自动生成一个包含首页、上一页、具体页码、下一页和末页等信息的pages对象,供您在模板中灵活渲染。

archiveList标签的下方,紧接着使用pagination标签,并可配合show参数来控制页码导航中显示的页码数量。例如,show="5"表示页码导航最多显示5个页码数字(如1、2、3、4、5)。

以下是一个结合了内容列表和页码导航的完整示例,并融入了样式定制的考量:

{% archiveList archives with type="page" limit="10" %}
    <div class="article-list">
        {% for item in archives %}
        <div class="article-item">
            <h2><a href="{{item.Link}}">{{item.Title}}</a></h2>
            <p>{{item.Description}}</p>
            <div class="meta">
                <span>分类:{% categoryDetail with name="Title" id=item.CategoryId %}</span>
                <span>发布日期:{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
                <span>阅读量:{{item.Views}}</span>
            </div>
        </div>
        {% empty %}
        <p>当前分类下暂时没有文章。</p>
        {% endfor %}
    </div>

    <div class="pagination-nav">
        {% pagination pages with show="5" %}
        <ul>
            {# 显示总条数和页码信息 #}
            <li>共 {{pages.TotalItems}} 篇文章,{{pages.TotalPages}} 页,当前第 {{pages.CurrentPage}} 页</li>

            {# 首页链接,如果当前是第一页则高亮 #}
            <li class="page-item {% if pages.FirstPage.IsCurrent %}active{% endif %}">
                <a href="{{pages.FirstPage.Link}}">{{pages.FirstPage.Name}}</a>
            </li>

            {# 上一页链接,只有当存在上一页时才显示 #}
            {% if pages.PrevPage %}
            <li class="page-item">
                <a href="{{pages.PrevPage.Link}}">{{pages.PrevPage.Name}}</a>
            </li>
            {% endif %}

            {# 中间页码数字,遍历 pages.Pages 数组 #}
            {% for pageItem in pages.Pages %}
            <li class="page-item {% if pageItem.IsCurrent %}active{% endif %}">
                <a href="{{pageItem.Link}}">{{pageItem.Name}}</a>
            </li>
            {% endfor %}

            {# 下一页链接,只有当存在下一页时才显示 #}
            {% if pages.NextPage %}
            <li class="page-item">
                <a href="{{pages.NextPage.Link}}">{{pages.NextPage.Name}}</a>
            </li>
            {% endif %}

            {# 末页链接,如果当前是末页则高亮 #}
            <li class="page-item {% if pages.LastPage.IsCurrent %}active{% endif %}">
                <a href="{{pages.LastPage.Link}}">{{pages.LastPage.Name}}</a>
            </li>
        </ul>
        {% endpagination %}
    </div>
{% endarchiveList %}

在上述pagination标签的内部,pages对象提供了丰富的信息:

  • pages.TotalItemspages.TotalPages 分别表示总文章数和总页数。
  • pages.CurrentPage 则是当前访问的页码。
  • pages.FirstPagepages.LastPagepages.PrevPagepages.NextPage 分别代表首页、末页、上一页和下一页的导航对象,它们都包含Link(链接地址)和Name(显示文本)属性,以及一个IsCurrent布尔值来判断是否为当前页。
  • pages.Pages 是一个数组,包含了中间部分的具体页码数字,每个元素也是一个包含LinkNameIsCurrent属性的对象。

利用这些属性,您可以轻松定制页码导航的外观。例如,通过{% if pageItem.IsCurrent %}active{% endif %}这样的条件判断,为当前页的<li>元素添加active类,然后通过CSS来设置其高亮样式。同样,{% if pages.PrevPage %}这样的判断可以确保在没有上一页或下一页时,对应的导航链接不会显示,从而保持导航的简洁性。

灵活多变:提升用户体验的实践建议

  1. CSS 定制外观:上述示例提供了HTML结构和基本的active类,具体的页码导航美化则完全取决于您的CSS设计。您可以调整字体、颜色、背景、边框等,使其与网站整体风格统一。
  2. 模板文件位置:通常,列表页的模板文件会放置在template/{您的模板目录}/{模型table}/list.html,例如template/default/article/list.html。如果您有特定的分类需要不同的列表布局,AnQiCMS也支持{模型table}/list-{分类id}.html这样的自定义模板。
  3. 结合搜索功能:如果您的网站包含搜索功能,archiveList标签在type="page"模式下,会自动读取URL中q参数作为搜索关键词,实现搜索结果的分页。您无需额外处理搜索结果

相关文章

如何根据不同的排序规则(如最新、浏览量、自定义排序)显示文章列表?

在安企CMS中管理网站内容,灵活地控制文章列表的展示顺序对于提升用户体验和内容分发效率至关重要。无论是想让最新发布的内容立即呈现在访客眼前,还是突出最受欢迎的热门文章,抑或是根据特定的运营策略手动调整文章的排布,安企CMS都提供了简洁而强大的方式来实现这些需求。 安企CMS的核心优势之一,就是其直观且功能丰富的模板标签系统。在处理文章列表的显示时

2025-11-08

如何在文章列表或分类列表中根据推荐属性(如“头条”、“推荐”)筛选并显示文章?

在内容管理和网站运营中,如何有效突出重点信息,引导用户关注特定文章,是提升网站效果的关键。安企CMS(AnQiCMS)提供了灵活的推荐属性功能,让您可以轻松地在文章列表或分类列表中,根据“头条”、“推荐”等属性筛选并展示文章,从而更好地实现内容运营策略。 ## 理解推荐属性:内容运营的核心工具 在安企CMS的后台,当我们发布或编辑文章时,会看到一个名为“推荐属性”的选项

2025-11-08

如何在网站首页动态显示不同分组的Banner轮播图?

网站首页的Banner轮播图是吸引访问者目光、传达核心信息的重要窗口。通过巧妙地设置,我们可以让首页的Banner轮播图根据不同的营销目标或内容主题动态展示,这不仅能提升用户体验,也能有效引导用户浏览。安企CMS(AnQiCMS)提供了灵活的功能,帮助用户轻松实现这一需求。 ### 理解安企CMS的Banner机制 在安企CMS中,Banner的管理与展示有着清晰的逻辑

2025-11-08

如何实现多语言网站内容的切换显示,并适配不同语言的用户?

在全球化日益深入的今天,一个能够支持多语言的网站已成为企业拓展国际市场、服务全球用户的基本需求。AnQiCMS 深刻洞察这一趋势,为用户提供了一套高效且灵活的多语言网站内容管理方案,帮助您的网站轻松实现不同语言内容的切换显示,并更好地适配全球各地的用户。 AnQiCMS 实现多语言网站内容切换的核心理念是**基于多站点管理**。这意味着,对于每一种您希望支持的语言,您将在 AnQiCMS

2025-11-08

如何在网站前端实现搜索功能,并显示带有高亮关键词的搜索结果列表?

在构建一个内容丰富的网站时,提供高效便捷的搜索功能是提升用户体验的关键一环。安企CMS(AnQiCMS)在设计之初就充分考虑了这一点,通过其灵活的模板引擎和内置标签,我们可以相对轻松地在网站前端实现搜索功能,并进一步优化,让搜索结果中的关键词醒目地高亮显示。 ### 核心机制:理解 AnQiCMS 的搜索原理 安企CMS 网站前端搜索的核心在于 `search/index.html`

2025-11-08

如何在文章列表中实现根据自定义参数(如产品特性、价格区间)进行筛选?

在网站运营中,我们常常需要对内容列表进行更细致的分类和筛选,以帮助用户快速找到他们真正感兴趣的信息。传统的文章分类虽然能解决大部分问题,但当内容属性更加复杂,例如产品有多种特性、价格区间,或者活动有不同的主题和参与方式时,单一的分类就显得力不从心了。 幸运的是,安企CMS(AnQiCMS)凭借其灵活的内容模型和强大的模板标签,为我们提供了实现文章列表自定义参数筛选的有效途径

2025-11-08

如何在AnQiCMS模板中显示上一篇和下一篇文章的链接和标题?

在网站运营中,为访问者提供流畅的导航体验至关重要。当用户阅读完一篇文章时,自然会期待发现更多相关内容,而“上一篇”和“下一篇”链接正是满足这一需求的关键功能。它们不仅能提升用户在您网站上的停留时间,还能通过构建内部链接结构,对搜索引擎优化(SEO)产生积极影响。 AnQiCMS 为模板开发者提供了简洁高效的内置标签,让您能够轻松地在文章详情页面显示上一篇和下一篇文章的链接和标题。下面

2025-11-08

如何在文档详情页显示相关文档列表,如同分类推荐或基于关键词推荐?

在网站内容运营中,为访问者提供更多相关的、可能感兴趣的内容,是提升用户体验、延长网站停留时间并促进内容深度浏览的关键策略。这不仅能有效引导用户探索更多信息,也是搜索引擎优化(SEO)中“页面间关联性”的重要组成部分。在安企CMS(AnQiCMS)这样功能强大的内容管理系统中,实现文档详情页的相关文档列表展示,操作起来既灵活又高效。 安企CMS为我们提供了 `archiveList`

2025-11-08