pdaleramirez / category-tree
为您的菜单和链接构建分类树结构。
1.0.6
2019-08-13 13:32 UTC
Requires
- craftcms/cms: ^3.2.0
README
为您的菜单和链接构建分类树结构。
安装
要安装Category Tree,请按照以下步骤操作
- 下载并解压缩文件,将
category-tree目录放置到您的craft/plugins目录下 - -或者- 直接在
craft/plugins文件夹中执行git clone https://github.com/pdaleramirez/category-tree.git
然后您可以使用git pull进行更新 - -或者- 使用Composer通过
composer require pdaleramirez/category-tree进行安装 - 在Craft控制面板的设置>插件下安装插件
- 插件文件夹应命名为
category-tree,以便Craft能够识别。GitHub最近开始在zip文件下载的文件夹名称中附加-master(分支名称)。
Category Tree适用于Craft 3.x。
Category Tree
您可以使用此插件在控制面板中获取craft递归分类树。
获取分类树
在模板中使用{{ craft.categorytree.getTree(1) }}以获取您的分类控制面板中的分类树结构,其中"groupId"是第一个参数。
示例输出
[
0 => [
'id' => '14'
'parentId' => 0
'title' => 'Dropdown 1'
'model' => 'craft\\elements\\Category'
'children' => [
0 => [
'id' => '15'
'parentId' => '14'
'title' => 'Dropdown 1.1'
'model' => 'craft\\elements\\Category'
'children' => [
0 => [
'id' => '22'
'parentId' => '15'
'title' => 'Dropdown 1.1.1'
'model' => 'craft\\elements\\Category'
]
1 => [
'id' => '23'
'parentId' => '15'
'title' => 'Dropdown 1.1.2'
'model' => 'craft\\elements\\Category'
]
2 => [
'id' => '24'
'parentId' => '15'
'title' => 'Dropdown 1.1.3'
'model' => 'craft\\elements\\Category'
]
]
]
1 => [
'id' => '13'
'parentId' => '14'
'title' => 'Dropdown 1.2'
'model' => 'craft\\elements\\Category'
]
2 => [
'id' => '11'
'parentId' => '14'
'title' => 'Dropdown 1.3'
'model' => 'craft\\elements\\Category'
]
]
]
1 => [
'id' => '17'
'parentId' => 0
'title' => 'Dropdown 2'
'model' => 'craft\\elements\\Category'
'children' => [
0 => [
'id' => '25'
'parentId' => '17'
'title' => 'Dropdown 2.1'
'model' => 'craft\\elements\\Category'
'children' => [
0 => [
'id' => '27'
'parentId' => '25'
'title' => 'Dropdown 2.1.1'
'model' => 'craft\\elements\\Category'
]
1 => [
'id' => '30'
'parentId' => '25'
'title' => 'Dropdown 2.1.2'
'model' => 'craft\\elements\\Category'
]
]
]
1 => [
'id' => '28'
'parentId' => '17'
'title' => 'Dropdown 2.2'
'model' => 'craft\\elements\\Category'
]
2 => [
'id' => '26'
'parentId' => '17'
'title' => 'Dropdown 2.3'
'model' => 'craft\\elements\\Category'
]
]
]
2 => [
'id' => '12'
'parentId' => 0
'title' => 'Dropdown 3'
'model' => 'craft\\elements\\Category'
'children' => [
0 => [
'id' => '16'
'parentId' => '12'
'title' => 'Dropdown 3.1'
'model' => 'craft\\elements\\Category'
]
1 => [
'id' => '29'
'parentId' => '12'
'title' => 'Dropdown 3.2'
'model' => 'craft\\elements\\Category'
]
]
]
]
模型索引返回分类对象。
示例实现
{% set categories = craft.categorytree.getTree() %}
{% for category in categories %}
<ul>
<li>{{ category.model.slug }}</li>
{% if category.children is defined %}
<ul>
{% for category in category.children %}
<li>{{ category.model.slug }}</li>
{% endfor %}
</ul>
{% endif %}
</ul>
{% endfor %}
显示分类列表
使用以下函数显示HTML分类列表。
第一个参数是基本URL链接。
第二个参数是分类模型的属性键,这将显示在基本URL的末尾。
第三个参数是"ul" HTML元素的CSS类。
{{ craft.categorytree.getList(1,{'base': '/category/',
'attribute': 'slug',
'class': 'category-tree'
}) }}
HTML输出
<ul class="category-tree category-tree-menu" id="category-tree-menu">
<li>
<a class="menulink" href="/category/dropdown1">Dropdown 1</a>
<ul class="category-tree category-tree-menu">
<li>
<a class="menulink" href="/category/dropdown1-1">Dropdown 1.1</a>
<ul class="category-tree category-tree-menu">
<li><a href="/category/dropdown-1-1-1">Dropdown 1.1.1</a></li>
<li><a href="/category/dropdown-1-1-2">Dropdown 1.1.2</a></li>
<li><a href="/category/dropdown-1-1-3">Dropdown 1.1.3</a></li>
</ul>
</li>
<li><a href="/category/dropdown1-2">Dropdown 1.2</a></li>
<li><a href="/category/dropdown1-3">Dropdown 1.3</a></li>
</ul>
</li>
<li>
<a class="menulink" href="/category/dropdown2">Dropdown 2</a>
<ul class="category-tree category-tree-menu">
<li>
<a class="menulink" href="/category/dropdown-2-1">Dropdown 2.1</a>
<ul class="category-tree category-tree-menu">
<li><a href="/category/dropdown-2-1-1">Dropdown 2.1.1</a></li>
<li><a href="/category/dropdown-2-1-2">Dropdown 2.1.2</a></li>
</ul>
</li>
<li><a href="/category/dropdown-2-2">Dropdown 2.2</a></li>
<li><a href="/category/dropdown-2-3">Dropdown 2.3</a></li>
</ul>
</li>
<li>
<a class="menulink" href="/category/dropdown3">Dropdown 3</a>
<ul class="category-tree category-tree-menu">
<li><a href="/category/dropdown-3-1">Dropdown 3.1</a></li>
<li><a href="/category/dropdown-3-2">Dropdown 3.2</a></li>
</ul>
</li>
</ul>
显示JavaScript下拉菜单
{{ craft.categorytree.getMenu(1,{'base': '/category/',
'attribute': 'slug',
'class': 'category-tree'
}) }}