fatfish / navigation
为网站创建导航。
Requires
- craftcms/cms: ^3.0.0-RC1
This package is auto-updated.
Last update: 2024-09-05 11:30:56 UTC
README
为网站创建导航的Craft插件。
需求
此插件需要Craft CMS 3.0.0-beta.23或更高版本。
安装
要安装插件,请按照以下说明操作。
-
打开您的终端并进入Craft项目
cd /path/to/project
-
然后让Composer加载插件
composer require fatfish/navigation
-
在控制面板中,转到设置→插件,然后点击“安装”按钮以安装Navigation。
Navigation概览
Navigation是Craft CMS 3.x的一个简单菜单构建器
- 点击创建菜单,给你的菜单起个名字。
- 通过点击条目按钮选择条目,或者如果你想要添加外部链接,请点击外部链接。
- 保存菜单
好了!
模板
craft.Navigation.render()
craft.Navigation.render() 允许你使用预构建的静态模板构建菜单。此函数接受两个参数,菜单名称 "menu_name" 和菜单样式选项。
菜单样式选项包含具有 'div'、'ul'、'li' 和 'a' 元素的数组。每个元素都可以有自己的CSS类。
{{craft.Navigation.render('menu_name',{ wrapperClass : 'navbar',
ulClass: 'navbar-nav',
listClass: 'nav-item',
linkClass: 'nav-link'})}}
此插件还允许你使用自己的HTML和CSS构建菜单,你可以通过Twig宏使用它。
为了实现这一点,你需要使用 craft.Navigation.getRawNav(MenuName)
这将允许你使用Twig宏构建自己的HTML菜单。
示例自定义菜单
{% import _self as macros %} {% macro menu(node,menuId) %} {% import _self as macros %} {% set Grandchildren = craft.Navigation.renderChildren(node,menuId) %} {% if Grandchildren | length > (0) %}
- {% for grandchildren in Grandchildren %}
- {{ grandchildren.NodeName }} {{ macros.menu(grandchildren.NodeId,grandchildren.menuId) }} {% endfor %}
- {% set MenuNodes=craft.Navigation.getRawNav('MenuName') %} {% if MenuNodes is defined %} {% if MenuNodes is iterable %}
{% for MenuNode in MenuNodes %}
{% if MenuNode.ParenNode == (0) %}
{% if craft.Navigation.renderChildren(MenuNode.NodeId,MenuNode.menuId) is iterable %}
<li>
<a href="{% if craft.entries.id(MenuNode.NodeId).one().uri is defined %}/{{craft.entries.id(MenuNode.NodeId).one().uri}}{% else %}{{ MenuNode.menuUrl }} {% endif %}">{{ MenuNode.NodeName }}</a>
{% if craft.Navigation.renderChildren(MenuNode.NodeId,MenuNode.menuId) | length %}
<ul>
{% for childrenMenu in craft.Navigation.renderChildren(MenuNode.NodeId,MenuNode.menuId) %}
<li>
<a href="{% if craft.entries.id(childrenMenu.NodeId).one().uri is defined %}/{{craft.entries.id(childrenMenu.NodeId).one().uri}}{% else %}{{ childrenMenu.menuUrl }} {% endif %}">{{ childrenMenu.NodeName }}</a>
{{ macros.menu(childrenMenu.NodeId,childrenMenu.menuId) }}
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% else %}
{% endif %}
{% else %}
{% endif %}
{% endfor %}
{% endif %}
{% else %} {% endif %}
由 Fatfish 提供