templates/bundles/EasyAdminBundle/default/menu.html.twig line 1

Open in your IDE?
  1. {% macro render_menu_item(item, translation_domain) %}
  2.     {% if item.type == 'divider' %}
  3.         {{ item.label|trans(domain = translation_domain) }}
  4.     {% else %}
  5.         {% set menu_params = { menuIndex: item.menu_index, submenuIndex: item.submenu_index } %}
  6.         {% set path =
  7.             item.type == 'link' ? item.url :
  8.             item.type == 'route' ? path(item.route, item.params) :
  9.             item.type == 'entity' ? path('easyadmin', { entity: item.entity, action: 'list' }|merge(menu_params)|merge(item.params)) :
  10.             item.type == 'empty' ? '#' : ''
  11.         %}
  12.         {# if the URL generated for the route belongs to the backend, regenerate
  13.            the URL to include the menu_params to display the selected menu item
  14.            (this is checked comparing the beginning of the route URL with the backend homepage URL)
  15.         #}
  16.         {% if item.type == 'route' and (path starts with path('easyadmin')) %}
  17.             {% set path = path(item.route, menu_params|merge(item.params)) %}
  18.         {% endif %}
  19.         <a href="{{ path }}"
  20.            class="sidebar-link {{ item.css_class|default('') }}"
  21.            {% if item.target|default(false) %}target="{{ item.target }}"{% endif %}
  22.                 {% if item.rel|default(false) %}rel="{{ item.rel }}"{% endif %}>
  23.             {% if item.icon is not empty %}<i class="fa fa-fw {{ item.icon }}"></i>{% endif %}
  24.             <span>{{ item.label|trans(domain = translation_domain) }}</span>
  25.             {% if item.children|default([]) is not empty %}<i class="fa fa-fw fa-angle-right"></i>{% endif %}
  26.         </a>
  27.     {% endif %}
  28. {% endmacro %}
  29. {% import _self as helper %}
  30. {% block main_menu_before %}{% endblock %}
  31. {% set _translation_domain = (_entity_config.translation_domain)|default(easyadmin_config('translation_domain'))|default('messages') %}
  32. <nav class="sidebar-nav">
  33. <ul class="in" id="sidebarnav">
  34.     {% set _menu_items = easyadmin_config('design.menu') %}
  35.     {% block main_menu %}
  36.         {% for item in _menu_items %}
  37.             {% block menu_item %}
  38.                 {% set is_selected_menu = app.request.query.get('menuIndex')|default(-1) == item.menu_index %}
  39.                 {% set is_selected_submenu = is_selected_menu and app.request.query.get('submenuIndex')|default(-1) != -1 %}
  40.                 {% if easyadmin_is_granted(item.permission) %}
  41.                     <li class="sidebar-item {{ item.type == 'divider' ? 'nav-small-cap' }} {{ item.children is not empty ? 'treeview' }} {{ is_selected_menu ? 'selected' }} {{ is_selected_submenu ? 'submenu-selected' }}">
  42.                         {{ helper.render_menu_item(item, _translation_domain) }}
  43.                         {% if item.children|default([]) is not empty %}
  44.                             <ul class="collapse first-level base-level-line">
  45.                                 {% for subitem in item.children %}
  46.                                     {% block menu_subitem %}
  47.                                         {% if easyadmin_is_granted(subitem.permission) %}
  48.                                             <li class="sidebar-item {{ subitem.type == 'divider' ? 'header' }} {{ is_selected_menu and app.request.query.get('submenuIndex')|default(-1) == subitem.submenu_index ? 'active' }}">
  49.                                                 {{ helper.render_menu_item(subitem, _translation_domain) }}
  50.                                             </li>
  51.                                         {% endif %}
  52.                                     {% endblock menu_subitem %}
  53.                                 {% endfor %}
  54.                             </ul>
  55.                         {% endif %}
  56.                     </li>
  57.                 {% endif %}
  58.             {% endblock menu_item %}
  59.         {% endfor %}
  60.     {% endblock main_menu %}
  61. </ul>
  62. </nav>
  63. {% block main_menu_after %}{% endblock %}