安企CMS以其灵活的内容模型设计,让内容管理变得高效且富有弹性。无论是运营企业官网、营销网站,还是个人博客,都可能面临需要根据不同内容模型(比如文章、产品或自定义模型)来展示其对应分类列表的需求。理解如何在模板中精确获取这些分类,是充分利用安企CMS强大功能的关键一步。
在安企CMS中,内容模型是组织内容的基石。系统默认内置了“文章模型”和“产品模型”,同时您也可以根据业务需要创建任意数量的自定义内容模型。每个分类都紧密地绑定在一个特定的内容模型下,这意味着当我们谈论“获取指定模型下的所有分类列表”时,我们首先要明确目标是哪个内容模型。
要实现这个目标,核心在于灵活运用安企CMS提供的categoryList模板标签。这个标签设计得非常强大,能够帮助我们在前端页面轻松地获取并展示所需的分类数据。
精准定位:categoryList标签的核心参数
要获取特定内容模型下的分类列表,categoryList标签有两个关键参数需要我们关注:moduleId 和 all 或 parentId。
首先是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