如何在分类页面显示该分类下的文章列表,并同时显示分类的Logo或Banner图?

📅 👁️ 85

在安企CMS中管理和展示分类内容,是构建一个结构清晰、用户友好的网站的关键一步。分类页面不仅能帮助用户快速找到感兴趣的内容,同时配合精心设计的视觉元素,如Logo或Banner图,还能有效提升品牌形象和用户体验。这篇文章将详细指导您如何在安企CMS的分类页面实现这些功能。


一、理解分类页面的构成与模板设置

在安企CMS中,每个分类都对应一个可以展示其内容的页面。为了更好地控制这些页面的布局和显示效果,安企CMS提供了灵活的模板机制。当您希望为某个分类或所有特定模型下的分类展示文章列表和独特的Logo或Banner图时,我们需要关注分类页面的模板文件。

安企CMS的模板文件通常存放在 /template 目录下,并遵循一定的命名约定。对于分类列表页,常用的模板文件命名格式是:

  • {模型table}/list.html:这是该模型下所有分类的默认列表页模板。
  • {模型table}/list-{分类ID}.html:您可以为某个具体分类ID定制专属的列表页模板。

这意味着您可以为“文章”模型(假设其模型表名为 article)的所有分类使用 article/list.html,或者为ID为10的“新闻资讯”分类专门设计 article/list-10.html。在后台的“文档分类”设置中,您可以为每个分类指定它应该使用的模板文件。

二、在分类页面展示分类的Logo或Banner图

分类的Logo或Banner图是分类页面的重要视觉组成部分。安企CMS为每个分类提供了上传这些图片的功能。您可以在后台进入“内容管理” -> “文档分类”,编辑某个分类时,会看到“Banner图”和“缩略图”的上传选项。

在模板中,我们可以使用 categoryDetail 标签来获取当前分类的详细信息,包括这些图片。

获取分类Logo或缩略图: 如果您的分类只设置了一张代表性的Logo或缩略图,可以直接使用 LogoThumb 字段。通常,Logo 字段用于展示大图,而 Thumb 字段用于较小的缩略图。

{# 假设这是分类列表页模板的某个位置 #}
<div class="category-header">
    {# 获取当前分类的Logo图,并将其用作页面标题的背景或直接展示 #}
    {% categoryDetail categoryLogo with name="Logo" %}
    {% if categoryLogo %}
        <img src="{{ categoryLogo }}" alt="{% categoryDetail with name='Title' %}" class="category-logo">
    {% endif %}

    {# 或者获取分类的缩略图 #}
    {% categoryDetail categoryThumb with name="Thumb" %}
    {% if categoryThumb %}
        <img src="{{ categoryThumb }}" alt="{% categoryDetail with name='Title' %}" class="category-thumbnail">
    {% endif %}

    <h1>{% categoryDetail with name='Title' %}</h1>
    <p>{% categoryDetail with name='Description' %}</p>
</div>

展示分类Banner组图: 如果分类上传了多张Banner图片(在后台的“Banner图”选项中),这些图片会被作为一个组图数据存储。您可以通过 Images 字段获取,并需要使用 for 循环来遍历显示。

{# 假设这是分类列表页模板的Banner区域 #}
<div class="category-banner-slider">
    {% categoryDetail bannerImages with name="Images" %}
    {% if bannerImages %}
        {# 遍历所有Banner图片 #}
        {% for imageSrc in bannerImages %}
            <div class="banner-item">
                <img src="{{ imageSrc }}" alt="{% categoryDetail with name='Title' %} - Banner {{ forloop.Counter }}">
            </div>
        {% endfor %}
        {# 如果只需要显示第一张Banner图作为固定头部背景 #}
        {% set firstBanner = bannerImages[0] %}
        <div class="fixed-banner" style="background-image: url('{{ firstBanner }}');"></div>
    {% endif %}
</div>

三、在分类页面显示该分类下的文章列表

展示分类下的文章列表是分类页面的核心功能。安企CMS提供了 archiveList 标签来轻松实现这一需求。这个标签非常灵活,可以根据多种条件筛选文章,包括所属分类、所属模型等。

在分类页面,我们通常希望获取当前分类下的所有文章。archiveList 标签会自动识别当前页面的分类ID,所以我们通常不需要显式地指定 categoryId 参数,除非您想获取其他分类的文章。

基础文章列表展示: 以下代码片段展示了如何获取当前分类下的文章列表,并显示每篇文章的标题、链接、简介和缩略图。

{# 假设这是文章列表区域 #}
<div class="article-list-section">
    {% archiveList articles with type="page" limit="10" %} {# type="page"表示启用分页,limit="10"表示每页显示10篇文章 #}
        {% for item in articles %}
            <div class="article-item">
                {% if item.Thumb %}
                    <a href="{{ item.Link }}" class="article-thumb">
                        <img src="{{ item.Thumb }}" alt="{{ item.Title }}">
                    </a>
                {% endif %}
                <div class="article-content">
                    <h2 class="article-title"><a href="{{ item.Link }}">{{ item.Title }}</a></h2>
                    <p class="article-description">{{ item.Description }}</p>
                    <div class="article-meta">
                        <span>发布日期:{{ stampToDate(item.CreatedTime, "2006-01-02") }}</span>
                        <span>浏览量:{{ item.Views }}</span>
                    </div>
                </div>
            </div>
        {% empty %}
            <p>当前分类下暂无文章。</p>
        {% endfor %}
    {% endarchiveList %}
</div>

在上述代码中:

  • type="page" 是启用分页的关键设置。
  • limit="10" 则定义了每页显示的文章数量。
  • item.Thumbitem.Linkitem.Titleitem.Description 等是 archiveList 标签遍历时每篇文章可用的字段。
  • stampToDate 过滤器用于格式化文章发布时间戳。

四、实现文章列表的分页功能

当文章数量较多时,分页是必不可少的功能,它能提高页面的加载速度和用户体验。安企CMS通过 archiveListtype="page" 结合 pagination 标签来提供分页功能。

pagination 标签需要放置在 archiveList 标签的外部,并且需要 archiveList 标签将分页数据传递给它。

{# 承接上文的文章列表代码,在其下方添加分页部分 #}
<div class="pagination-section">
    {% pagination pages with show="5" %} {# show="5"表示最多显示5个页码按钮 #}
        <ul class="pagination-list">
            {# 首页按钮 #}
            <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 %}
            {# 中间页码按钮 #}
            {% 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>
        <p class="pagination-info">总计 {{ pages.TotalItems }} 篇文章,{{ pages.TotalPages }} 页,当前第 {{ pages.CurrentPage }} 页。</p>
    {% endpagination %}
</div>

这里,pages 变量包含了所有分页相关的数据,例如 TotalItems(总文章数)、TotalPages(总页数)、CurrentPage(当前页码)以及各个页码的链接 (Link) 和名称 (Name)。

五、整合与实践建议

为了实现“在分类页面显示该分类下的文章列表,并同时显示分类的Logo或Banner图”,您可以创建一个名为 article/list.html(或特定分类ID的模板)的文件,然后将上述所有代码片段整合进去。

模板文件组织:

  1. 在您选择的模板主题目录下,创建 article/list.html 文件。
  2. 将您希望应用于所有文章分类页面的HTML结构、样式和JavaScript代码放入此文件中。
  3. 在文件的适当位置插入上述用于显示分类Logo/Banner图、文章列表和分页的代码。

后台配置:

  1. 确保您的文章已正确归类到相应的分类下,并且每篇文章都已上传了缩略图(

相关文章

如何实现文章列表、产品列表或Tag列表的分页显示功能?

管理网站内容,尤其是当内容量日渐庞大时,如何让访客既能快速找到所需信息,又能保持页面加载流畅,是一个重要的课题。安企CMS(AnQiCMS)在设计之初就充分考虑了这一点,它提供了一套直观而强大的分页功能,让您的文章列表、产品列表乃至Tag列表都能实现优雅的分页显示。 我们都知道,当一个分类下的文章或产品数量很多时,将它们全部显示在一个页面上不仅会拖慢加载速度,还会让用户在海量信息中感到迷茫

2025-11-08

如何根据文章的Tag(标签)来显示相关联的文章列表?

在内容管理系统中,有效利用标签(Tag)来组织和关联文章,是提升用户体验和内容发现效率的关键一环。AnQiCMS 提供了强大而灵活的标签功能,让我们可以轻松地根据文章的标签来展示相关联的内容列表。 ## 理解AnQiCMS的标签功能 AnQiCMS 的标签功能(Tag)不仅仅是为文章添加关键词,它更像是一种跨分类、跨模型的内容关联方式。通过为文章添加标签,我们可以将那些主题相近

2025-11-08

如何在网站的侧边栏或页脚区域显示友情链接列表?

安企CMS提供了一套直观而强大的功能,帮助我们轻松管理网站内容。其中,友情链接作为网站外部连接的重要组成部分,不仅有助于网站的SEO表现,也能为用户提供更多有价值的跳转入口。本文将详细介绍如何在您的网站侧边栏或页脚区域灵活地展示友情链接列表。 ### 在后台管理友情链接 在将友情链接展示到网站前端之前,我们首先需要在安企CMS的后台进行配置。 要管理友情链接,您可以登录后台

2025-11-08

如何实现文章详情页图片内容的懒加载显示,以提升页面加载速度?

在如今快节奏的网络环境中,网站加载速度是用户体验和搜索引擎排名的关键因素。对于包含大量图片的文章详情页来说,图片资源的优化尤为重要。通过实施图片懒加载,我们可以显著提升页面的初始加载速度,让访问者更快地看到内容,从而获得更好的体验。 安企CMS(AnQiCMS)在设计时充分考虑了网站的性能优化需求,为实现文章详情页的图片懒加载提供了简洁高效的途径。 ###

2025-11-08

如何显示网站全局的TDK(Title, Keywords, Description)信息?

## 优化网站门面:安企CMS中TDK信息的展示与应用 在网站运营中,TDK(Title, Keywords, Description)是搜索引擎优化(SEO)不可或缺的基础元素。它们就像网站的“名片”,直接告诉搜索引擎您的页面主题、核心内容以及最重要的关键词,从而影响网站在搜索结果中的排名和点击率。一个精心设置的TDK,能让您的网站在众多竞争者中脱颖而出

2025-11-08

如何精确控制网站导航菜单的显示内容、层级和当前选中状态?

网站导航,就像一个网站的指路牌,清晰、直观的导航系统能极大地提升用户体验,帮助访客快速找到所需信息。同时,对搜索引擎来说,良好的导航结构也是理解网站内容层级、进行有效抓取和排名的关键。在安企CMS中,我们可以灵活而精确地控制网站导航的显示内容、层级和当前选中状态,让导航既美观又实用。 ## 核心理念:后台配置与前端模板渲染分离 安企CMS在处理网站导航时,遵循着“后台配置数据

2025-11-08

如何在网站页面中添加并显示动态的面包屑导航?

在现代网站设计中,面包屑导航(Breadcrumb Navigation)扮演着至关重要的角色。它就像用户在网站上的“足迹”,清晰地显示当前页面在整个网站结构中的位置,让访客一目了然,从而大大提升网站的可用性和用户体验。同时,合理设置的面包屑导航也有助于搜索引擎更好地理解网站结构,对SEO优化非常有益。 对于使用AnQiCMS来管理网站的用户来说

2025-11-08

如何创建和显示自定义的单页面(如关于我们、联系方式)内容?

在网站运营中,“关于我们”、“联系方式”、“隐私政策”这类内容通常以独立页面的形式展示,它们内容相对固定,且在网站结构中扮演着重要角色。安企CMS(AnQiCMS)为创建和管理这些自定义单页面提供了直观而强大的功能,让您无需编写代码即可轻松发布和更新。 ### 创建自定义单页面内容 在安企CMS中创建单页面是一个简单而直接的过程。首先,您需要登录后台管理界面。 1. **进入页面管理

2025-11-08