dominicvonk/navigation

为网站制作导航。

安装: 9

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 0

分支: 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是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提供