mirror of
				https://github.com/kevinveenbirkenbach/infinito.git
				synced 2025-10-31 17:29:04 +00:00 
			
		
		
		
	Substituted old menu trough KNP menu bundle
This commit is contained in:
		| @@ -1,7 +1,6 @@ | ||||
| {% extends "base.html.twig" %} | ||||
| {% block body %} | ||||
| {% include 'frames/structure/navbar.html.twig' with menu_items %} | ||||
| {% include 'topbar.html.twig' %} | ||||
| {% include 'frames/structure/navbar.html.twig'%} | ||||
| <br /> | ||||
| <div class="container"> | ||||
| 	{% block content %} | ||||
|   | ||||
							
								
								
									
										200
									
								
								application/templates/frames/structure/knp_menu.html.twig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										200
									
								
								application/templates/frames/structure/knp_menu.html.twig
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,200 @@ | ||||
| {# @see https://gist.github.com/lsv/24a9e9d7d961d22226f8e220d2c4a7d0 #} | ||||
| {% extends 'knp_menu.html.twig' %} | ||||
|  | ||||
| {% macro setCssClassAttribute(item, type, add) %} | ||||
|     {% set getter = 'get' ~ type %} | ||||
|     {% set setter = 'set' ~ type %} | ||||
|     {% set value = attribute(item, getter, ['class']) %} | ||||
|     {% if value is iterable %} | ||||
|         {% set value = value|join(' ') %} | ||||
|     {% endif %} | ||||
|     {% do attribute(item, setter, ['class', value ~ ' ' ~ add]) %} | ||||
| {% endmacro %} | ||||
|  | ||||
| {% block item %} | ||||
|     {% import "knp_menu.html.twig" as macros %} | ||||
|     {# | ||||
|     As multiple level is not currently supported by bootstrap 4 | ||||
|     This requires you to install | ||||
|     https://github.com/bootstrapthemesco/bootstrap-4-multi-dropdown-navbar | ||||
|     And set the the use_multilevel = true | ||||
|     #} | ||||
|     {% set use_multilevel = false %} | ||||
|  | ||||
|     {% if item.displayed %} | ||||
|         {%- set attributes = item.attributes %} | ||||
|         {%- set is_dropdown = attributes.dropdown|default(false) %} | ||||
|         {%- set divider_prepend = attributes.divider_prepend|default(false) %} | ||||
|         {%- set divider_append = attributes.divider_append|default(false) %} | ||||
|  | ||||
|         {# unset bootstrap specific attributes #} | ||||
|         {%- set attributes = attributes|merge({'dropdown': null, 'divider_prepend': null, 'divider_append': null }) %} | ||||
|  | ||||
|         {%- if divider_prepend %} | ||||
|             {{ block('dividerElement') }} | ||||
|         {%- endif %} | ||||
|  | ||||
|         {# building the class of the item #} | ||||
|         {%- set classes = item.attribute('class') is not empty ? [item.attribute('class'), 'nav-item'] : ['nav-item'] %} | ||||
|         {%- if matcher.isCurrent(item) %} | ||||
|             {%- set classes = classes|merge([options.currentClass]) %} | ||||
|         {%- elseif matcher.isAncestor(item, options.depth) %} | ||||
|             {%- set classes = classes|merge([options.ancestorClass]) %} | ||||
|         {%- endif %} | ||||
|         {%- if item.actsLikeFirst %} | ||||
|             {%- set classes = classes|merge([options.firstClass]) %} | ||||
|         {%- endif %} | ||||
|         {%- if item.actsLikeLast %} | ||||
|             {%- set classes = classes|merge([options.lastClass]) %} | ||||
|         {%- endif %} | ||||
|  | ||||
|         {# building the class of the children #} | ||||
|         {%- set childrenClasses = item.childrenAttribute('class') is not empty ? [item.childrenAttribute('class')] : [] %} | ||||
|         {%- set childrenClasses = childrenClasses|merge(['menu_level_' ~ item.level]) %} | ||||
|  | ||||
|         {# adding classes for dropdown #} | ||||
|         {%- if is_dropdown %} | ||||
|             {%- set classes = classes|merge(['dropdown']) %} | ||||
|             {%- set childrenClasses = childrenClasses|merge(['dropdown-menu']) %} | ||||
|         {%- endif %} | ||||
|  | ||||
|         {# putting classes together #} | ||||
|         {%- if classes is not empty %} | ||||
|             {%- set attributes = attributes|merge({'class': classes|join(' ')}) %} | ||||
|         {%- endif %} | ||||
|         {%- set listAttributes = item.childrenAttributes|merge({'class': childrenClasses|join(' ') }) %} | ||||
|  | ||||
|         <li{{ macros.attributes(attributes) }}> | ||||
|             {# displaying the item #} | ||||
|             {%- if is_dropdown %} | ||||
|                 {{ block('dropdownElement') }} | ||||
|             {%- elseif item.uri is not empty and (not item.current or options.currentAsLink) %} | ||||
|                 {{ block('linkElement') }} | ||||
|             {%- else %} | ||||
|                 {{ block('spanElement') }} | ||||
|             {%- endif %} | ||||
|             {%- if divider_append %} | ||||
|                 {{ block('dividerElement') }} | ||||
|             {%- endif %} | ||||
|             {% if item.hasChildren and options.depth is not same as(0) and item.displayChildren %} | ||||
|                 {{ block('dropdownlinks') }} | ||||
|             {% endif %} | ||||
|         </li> | ||||
|     {% endif %} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block dropdownlinks %} | ||||
|     {% if use_multilevel %} | ||||
|         <ul class="dropdown-menu"> | ||||
|     {% else %} | ||||
|         <div class="dropdown-menu"> | ||||
|     {% endif %} | ||||
|     {% for item in item.children %} | ||||
|         {{ block('renderDropdownlink') }} | ||||
|  | ||||
|         {% if use_multilevel and item.hasChildren and options.depth is not same as(0) and item.displayChildren %} | ||||
|             {{ block('dropdownlinks') }} | ||||
|         {% endif %} | ||||
|     {% endfor %} | ||||
|     {% if not use_multilevel %} | ||||
|         </div> | ||||
|     {% else %} | ||||
|         </ul> | ||||
|     {% endif %} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block renderDropdownlink %} | ||||
|     {% import _self as ownmacro %} | ||||
|     {%- set divider_prepend = item.attributes.divider_prepend|default(false) %} | ||||
|     {%- set divider_append = item.attributes.divider_append|default(false) %} | ||||
|     {%- set attributes = item.attributes|merge({'dropdown': null, 'divider_prepend': null, 'divider_append': null }) %} | ||||
|  | ||||
|     {% if use_multilevel %} | ||||
|         <li> | ||||
|     {% endif %} | ||||
|  | ||||
|     {%- if divider_prepend %} | ||||
|         {{ block('dividerElementDropdown') }} | ||||
|     {%- endif %} | ||||
|  | ||||
|     {%- if item.uri is not empty and (not item.current or options.currentAsLink) %} | ||||
|         {{ ownmacro.setCssClassAttribute(item, 'LinkAttribute', 'dropdown-item') }} | ||||
|         {{ block('linkElement') }} | ||||
|     {%- else %} | ||||
|         {{ block('spanElementDropdown') }} | ||||
|     {%- endif %} | ||||
|  | ||||
|     {%- if divider_append %} | ||||
|         {{ block('dividerElementDropdown') }} | ||||
|     {%- endif %} | ||||
|  | ||||
|     {% if use_multilevel %} | ||||
|         </li> | ||||
|     {% endif %} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block spanElementDropdown %} | ||||
|     {% import "knp_menu.html.twig" as macros %} | ||||
|     {% import _self as ownmacro %} | ||||
|     {{ ownmacro.setCssClassAttribute(item, 'LabelAttribute', 'dropdown-header') }} | ||||
|     <div {{ macros.attributes(item.labelAttributes) }}> | ||||
|         {% if item.attribute('icon') is not empty  %} | ||||
|             <i class="{{ item.attribute('icon') }}"></i> | ||||
|         {% endif %} | ||||
|         {{ block('label') }} | ||||
| 	</div> | ||||
| {% endblock %} | ||||
|  | ||||
| {% block dividerElementDropdown %} | ||||
|     <div class="dropdown-divider"></div> | ||||
| {% endblock %} | ||||
|  | ||||
| {% block dividerElement %} | ||||
|     {% if item.level == 1 %} | ||||
|         <li class="divider-vertical"></li> | ||||
|     {% else %} | ||||
|         <li class="divider"></li> | ||||
|     {% endif %} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block linkElement %} | ||||
|     {% import "knp_menu.html.twig" as macros %} | ||||
|     {% import _self as ownmacro %} | ||||
|     {{ ownmacro.setCssClassAttribute(item, 'LinkAttribute', 'nav-link') }} | ||||
|     <a href="{{ item.uri }}"{{ macros.attributes(item.linkAttributes) }}> | ||||
|         {% if item.attribute('icon') is not empty  %} | ||||
|             <i class="{{ item.attribute('icon') }}"></i> | ||||
|         {% endif %} | ||||
|         {{ block('label') }} | ||||
|     </a> | ||||
| {% endblock %} | ||||
|  | ||||
| {% block spanElement %} | ||||
|     {% import "knp_menu.html.twig" as macros %} | ||||
|     {% import _self as ownmacro %} | ||||
|     {{ ownmacro.setCssClassAttribute(item, 'LabelAttribute', 'navbar-text') }} | ||||
|     <span {{ macros.attributes(item.labelAttributes) }}> | ||||
|         {% if item.attribute('icon') is not empty  %} | ||||
|             <i class="{{ item.attribute('icon') }}"></i> | ||||
|         {% endif %} | ||||
|         {{ block('label') }} | ||||
| 	</span> | ||||
| {% endblock %} | ||||
|  | ||||
| {% block dropdownElement %} | ||||
|     {% import "knp_menu.html.twig" as macros %} | ||||
|     {%- set classes = item.linkAttribute('class') is not empty ? [item.linkAttribute('class')] : [] %} | ||||
|     {%- set classes = classes|merge(['dropdown-toggle', 'nav-link']) %} | ||||
|     {%- set attributes = item.linkAttributes %} | ||||
|     {%- set attributes = attributes|merge({'class': classes|join(' ')}) %} | ||||
|     {%- set attributes = attributes|merge({'data-toggle': 'dropdown'}) %} | ||||
|     <a href="#"{{ macros.attributes(attributes) }}> | ||||
|         {% if item.attribute('icon') is not empty  %} | ||||
|             <i class="{{ item.attribute('icon') }}"></i> | ||||
|         {% endif %} | ||||
|         {{ block('label') }} | ||||
|         <b class="caret"></b> | ||||
|     </a> | ||||
| {% endblock %} | ||||
|  | ||||
| {% block label %}{{ item.label|trans }}{% endblock %} | ||||
| @@ -7,29 +7,6 @@ | ||||
| 		<span class="navbar-toggler-icon"></span> | ||||
| 	</button> | ||||
| 	<div class="collapse navbar-collapse" id="navbarSupportedContent"> | ||||
| 		<ul class="navbar-nav mr-auto"> | ||||
| 			{% for item in menu_items %} | ||||
| 			{% if item.name %} | ||||
| 			{% if item.url %} | ||||
| 			<li class="nav-item {% if item.active %}active{% endif %}"><a | ||||
| 				class="nav-link" href="{{ item.url }}"> {{ item.name }} | ||||
| 			</a></li> | ||||
| 			{% elseif item.toArray %} | ||||
| 			<li class="nav-item dropdown"><a | ||||
| 				class="nav-link dropdown-toggle" href="#" id="navbarDropdown" | ||||
| 				role="button" data-toggle="dropdown" aria-haspopup="true" | ||||
| 				aria-expanded="false"> {{ item.name }} | ||||
| 			</a> | ||||
| 				<div class="dropdown-menu" aria-labelledby="navbarDropdown"> | ||||
| 					{%for link in item %} | ||||
| 					<a class="dropdown-item {% if link.active %}active{% endif %}" | ||||
| 						href="{{ link.url }}"> {{ link.name }} | ||||
| 					</a> | ||||
| 					{% endfor %} | ||||
| 				</div></li> | ||||
| 			{% endif %} | ||||
| 			{% endif %} | ||||
| 			{% endfor %} | ||||
| 		</ul> | ||||
| 		{{ knp_menu_render('userTopbar', {'currentClass': 'active', 'template': 'frames/structure/knp_menu.html.twig'}) }} | ||||
| 	</div> | ||||
| </nav> | ||||
|   | ||||
| @@ -1,3 +0,0 @@ | ||||
| {# templates/topbar.htm.twig #} | ||||
|  | ||||
| {{ knp_menu_render('userTopbar') }} | ||||
		Reference in New Issue
	
	Block a user