fatfish/navigation

为网站创建导航。

安装次数: 1,673

依赖: 0

推荐者: 0

安全性: 0

星标: 7

关注者: 2

分支: 6

类型:craft-plugin

1.0.8.13-beta 2020-03-03 02:49 UTC

README

PHPCS check

为网站创建导航的Craft插件。

Screenshot

需求

此插件需要Craft CMS 3.0.0-beta.23或更高版本。

安装

要安装插件,请按照以下说明操作。

  1. 打开您的终端并进入Craft项目

     cd /path/to/project
    
  2. 然后让Composer加载插件

     composer require fatfish/navigation
    
  3. 在控制面板中,转到设置→插件,然后点击“安装”按钮以安装Navigation。

Navigation概览

Navigation是Craft CMS 3.x的一个简单菜单构建器

Screenshot

  1. 点击创建菜单,给你的菜单起个名字。
  2. 通过点击条目按钮选择条目,或者如果你想要添加外部链接,请点击外部链接。
  3. 保存菜单

好了!

模板

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 %}
{% endif %} {% endmacro %}

    {% 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 提供