templeton / craft-category-groups-field
一个用于选择分类组的 Craft CMS 字段类型
Requires
- php: ^8.0.2
- craftcms/cms: ^4.5.0
Requires (Dev)
- craftcms/ecs: dev-main
- craftcms/rector: dev-main
README
Craft CMS 的分类组字段类型。
用法
单选设置
单选字段设置控制分类组字段的行为。当此设置禁用时,字段将类似于元素编辑页面上的典型多选字段,在模板中访问字段将提供分类组集合。当单选启用时,字段将类似于元素编辑页面上的下拉字段,在模板中访问字段将提供分类组模型。
更改此设置后,字段数据不会立即更改,以防设置被意外更改;数据仅在实际上保存其元素时才会被覆盖。然而,当单选启用时,元素编辑页面和模板将把第一个(按字母顺序)选择的分类组视为字段唯一的分类组。
新分类组字段将默认为多组选择。如果您希望将单选作为默认值,请将以下内容复制到 config/category-groups-field.php
<?php return [ 'singleSelectionDefault' => true, ];
模板示例:单选禁用
此示例使用分类组集合的 all() 方法遍历集合的组。
{% if entry.categoryGroupsField %}
<p>Multi-selection category groups field:</p>
{% for group in entry.categoryGroupsField.all() %}
<p>{{ group.name }}</p>
{% endfor %}
</p>
{% else %}
<p>No category groups selected :(</p>
{% endif %}
在模板中可以以类似于典型 Craft 元素查询执行方法的方式访问多选分类组字段的数据,包括方法 all()、one()、nth()、count() 和 ids()。
它还可以用于获取所选分类组的类别,使用 categories() 方法返回 Craft 类别查询
{% if entry.categoryGroupsField %}
{% for category in entry.categoryGroupsField.categories().all() %}
<p>{{ category.title }}</p>
{% endfor %}
{% endif %}
使用 categories() 后,如果您想设置任何其他类别查询参数,请小心不要设置 groupId,因为它将覆盖字段中选择的组的 ID。如果您需要设置额外的分类组 ID,可以将包含类别查询参数的哈希传递给 categories(),其中包含的组 ID 将与字段中选择的 ID 合并
{% if entry.categoryGroupsField %}
{# Gets the categories from category groups with IDs 1, 2 and 3, as well as the category groups selected in the field #}
{% for category in entry.categoryGroupsField.categories({groupId: [1, 2, 3]}).all() %}
<p>{{ category.title }}</p>
{% endfor %}
{% endif %}
模板示例:单选启用
{% if entry.categoryGroupField %}
<p>Single selection category group field: {{ entry.categoryGroupField.name }}</p>
{% else %}
<p>No category group selected :(</p>
{% endif %}
允许的组设置
选择您的字段可以从中选择的分类组,或让它从所有组中选择。
要求
分类组字段需要 Craft CMS 4.5.0 或更高版本。
安装
分类组字段可以从 Craft 插件商店 或使用 Composer 安装。
Craft 插件商店
打开您项目的控制面板,转到插件商店,搜索分类组字段并点击安装。
Composer
打开您的终端,导航到您项目的根目录并运行以下命令
composer require ttempleton/craft-category-groups-field
然后打开您项目的控制面板,转到设置→插件,找到分类组字段并点击安装。
支持
如果您发现分类组字段存在问题,请通过在 GitHub 上 提交问题 告诉我。