安企CMS以其灵活的内容模型设计,让内容管理变得高效且富有弹性。无论是运营企业官网、营销网站,还是个人博客,都可能面临需要根据不同内容模型(比如文章、产品或自定义模型)来展示其对应分类列表的需求。理解如何在模板中精确获取这些分类,是充分利用安企CMS强大功能的关键一步。

在安企CMS中,内容模型是组织内容的基石。系统默认内置了“文章模型”和“产品模型”,同时您也可以根据业务需要创建任意数量的自定义内容模型。每个分类都紧密地绑定在一个特定的内容模型下,这意味着当我们谈论“获取指定模型下的所有分类列表”时,我们首先要明确目标是哪个内容模型。

要实现这个目标,核心在于灵活运用安企CMS提供的categoryList模板标签。这个标签设计得非常强大,能够帮助我们在前端页面轻松地获取并展示所需的分类数据。

精准定位:categoryList标签的核心参数

要获取特定内容模型下的分类列表,categoryList标签有两个关键参数需要我们关注:moduleIdallparentId

首先是moduleId。这个参数是获取指定模型分类的关键。它允许您明确告诉系统,您想要哪个内容模型下的分类。例如,如果您的文章模型ID是1,产品模型ID是2,那么您就可以通过设置moduleId="1"moduleId="2"来指定目标模型。具体的模型ID,您可以在安企CMS后台的“内容管理”->“内容模型”中查看到。

其次是all参数。如果您需要列出某个模型下的所有分类,无论它们是顶级分类还是子分类,all=true就派上用场了。将其设置为true,系统会帮你把这个模型下的所有分类都找出来,并以一个平铺的列表形式返回,方便您进行自定义的处理。

另外,如果您只关心某个模型下的顶级分类,而不是所有层级的分类,那么可以结合使用parentId="0"。这会告诉系统只返回那些没有上级分类的(即最顶级的)分类。

实践操作:获取并展示分类列表

下面我们通过几个实际例子来演示如何使用categoryList标签获取指定模型下的分类。

示例一:获取指定模型下的所有顶级分类

假设我们想在网站首页侧边栏显示“文章”模型下的所有顶级分类。首先,我们需要知道“文章”模型对应的moduleId。通常情况下,文章模型的ID是1

{# 获取“文章”模型(moduleId="1")下的所有顶级分类 #}
<div class="category-list">
    <h3>文章分类</h3>
    <ul>
        {% categoryList categories with moduleId="1" parentId="0" %}
            {% for item in categories %}
                <li>
                    <a href="{{ item.Link }}" title="{{ item.Title }}">{{ item.Title }}</a>
                    {# 如果需要,可以判断是否有子分类并进行提示 #}
                    {% if item.HasChildren %}
                        <span>(有子分类)</span>
                    {% endif %}
                </li>
            {% endfor %}
            {% empty %}
                <li>暂无文章分类</li>
        {% endcategoryList %}
    </ul>
</div>

在这段代码中,moduleId="1"明确指定了文章模型,而parentId="0"则确保我们只获取顶级分类。item.Link会输出分类的访问链接,item.Title则显示分类名称,`item.Has