dominicvonk / navigation
为网站制作导航。
Requires
- craftcms/cms: ^3.0.0-RC1
This package is auto-updated.
Last update: 2024-09-17 17:06:36 UTC
README
网站导航Craft插件。
要求
此插件需要Craft CMS 3.0.0-beta.23或更高版本。
安装
要安装插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project -
然后告诉Composer加载插件
composer require fatfish/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提供

