荷兰高度 / 工艺导航
Craft CMS 3 的导航插件
1.2.3
2020-02-03 10:10 UTC
Requires
- craftcms/cms: ^3.0.0
This package is auto-updated.
Last update: 2024-09-07 23:16:45 UTC
README
Craft CMS 3 的导航插件,支持 GraphQL 和自定义字段。Navie 允许您为导航项添加自定义字段。
添加自定义字段
添加链接到列表
使用自定义字段
需求
此插件需要 Craft CMS 3.0.0 或更高版本。
安装
要安装插件,请按照以下说明操作。
-
打开您的终端并转到您的 Craft 项目
cd /path/to/project
-
然后告诉 Composer 加载插件
composer require dutchheight/craft-navie
-
在控制面板中,转到设置 → 插件,并点击 Navie 的“安装”按钮。
-
创建列表
-
在模板中渲染。见 显示 Navie 列表
Navie 功能
- 多个菜单/列表
- 多站支持
- GraphQL 支持
- 默认链接类型(条目、Url、类别、资产)
- 通过添加字段为每个菜单添加自定义链接类型
- 丰富的 API
- 可编辑的插件名称
- 权限(管理列表和编辑设置)
- 每个列表的权限(显示、创建、编辑和删除)
- 预加载(条目、类别、资产)
使用 Twig 与 Navie
显示 Navie 列表
craft.navie.render(handle, options)
用于显示列表。您可以提供样式选项。
可用选项
{ ulClass: 'class', ulAttributes: { 'style': 'margin-top: 10;' }, ulChildClass: 'class', ulChildAttributes: { 'style': 'margin-top: 10;' }, listClass: 'class', listAttributes: { 'style': 'margin-top: 10;' }, linkClass: 'class', linkAttributes: { 'style': 'margin-top: 10;' }, linkActiveClass: 'active' }
示例
渲染 Navie 列表
{{ craft.navie.render('main', { ulChildAttributes: { 'style': 'margin-top: 0.25rem;', 'data-option': 'custom data option', } }) }}
获取 Navie 列表项的原始数据
craft.navie.items(criteria)
用于获取列表项。这允许您 检查 Craft 元素查询以获取更多信息。每个项目
示例
获取所有项目
{% set items = craft.navie.items() .list('main') .all() %}
按级别限制获取项目
{% set items = craft.navie.items() .list('main') .level(1) %}
预加载获取所有项目
{% set items = craft.navie.items() .list('main') .with(['entry', 'category', 'asset']) .all() %}
现在您可以使用 items.getElement().title
而无需额外的查询。这也可以在没有预加载的情况下完成,但会影响性能。
使用 GraphQL 与 Navie
Navie 内置了对通过 GraphQL 访问列表和项目的支持,使用本机 Craft CMS 3.3 GraphQL。
{ listItems(list: "main", level: 1) { id, title, url, target, children { id, url, title, target, ... on main_List { # Main is list handle classes } } } }
使用 CraftQL 插件与 Navie
Navie 内置了对通过 GraphQL 访问列表和项目的支持,使用 CraftQL 插件。
您可以检索所有列表及其字段
{ navie { lists { id, structureId, fieldLayoutId, maxLevels, name, handle, uid, propagate } } }
您还可以检索所有列表项及其字段,甚至列表上的自定义字段
{ navie { items(list: main) { title, url, target, children { title, url, target ... on MainList { classes } }, ... on MainList { classes } } } }
Navie 路线图
一些要完成的事情以及潜在功能的想法
- 可用链接类型的设置
- 支持 Project.yaml
- 自定义链接类型注册
由 Dutch Height 提供