Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {% macro menu(menuCategory, currentPage, includeStartpage, level = 1, parent = null, original = null) %}
- {% set originalPage = (original)? original : currentPage %}
- {% set activeClass = '' %}
- {% if original is not null and currentPage is not null and original.parent is not null %}
- {% if original.parent.id == currentPage.id %}
- {% set activeClass = "active" %}
- {% endif %}
- {% endif %}
- <ul class="{{ activeClass }} {% if parent == null %}clearfix{% endif %}" data-level="{{ level }}">
- {% if includeStartpage %}
- {% set startseite = craft.entries.section('homepage').first() %}
- <li {% if currentPage.id == startseite.id %}class="active" {% endif %}>
- <a href="{{ startseite.url }}" title="{{ startseite.title }}">{{ startseite.title|raw }}</a>
- </li>
- {% endif %}
- {% switch menuCategory %}
- {% case 'mainmenu' %}
- {% set entries = craft.entries.section('pages').level(level).dontShowInMenu("not 1") %}
- {% case 'topmenu' %}
- {% set entries = craft.entries.section('pages').showInHeaderMenu('1') %}
- {% case 'footermenu' %}
- {% set entries = craft.entries.section('pages').showInFooterMenu('not 0') %}
- {% case 'descendants' %}
- {% set entries = parent.getChildren() %}
- {% endswitch %}
- {% nav page in entries %}
- {% set url = _self.getUrl(page) %}
- {% set title = page.title %}
- {% set target = _self.getTarget(page) %}
- {% set class = "" %}
- {% switch page.type.handle %}
- {% case 'internalLink' %}
- {% set title = page.linkName %}
- {% case 'externalLink' %}
- {% set title = page.linkName %}
- {% default %}
- {% endswitch %}
- {% if (originalPage.getUrl == url|trim and not page.hasDescendants) %}
- {% set class = "active" %}
- {% endif %}
- {# Check if entry has descendants #}
- {% if not page.hasDescendants or (menuCategory == "footermenu" or menuCategory == "topmenu") %}
- {# List navigation item if entry has NO child entries #}
- <li class="{{ class }}">
- <a href="{{ url|trim }}" title="{{ title }}" {{ target }}>{{ title|raw }}</a>
- </li>
- {% elseif menuCategory == "mainmenu" or menuCategory == "descendants" %}
- {# List navigation item if entry does have child entries #}
- <li>
- <a href="#" class="{{ class }}" title="{{ title }}">{{ title|raw }}</a>
- {{ _self.menu('descendants', page, false, level+1, page, originalPage ) }}
- </li>
- {% endif %}
- {% endnav %}
- </ul>
- {% endmacro %}
- {% macro getUrl(element) %}
- {% switch element.type.handle %}
- {% case 'pageWithoutContent' %}
- {% set url = _self.getUrl(element.getChildren().first) %}
- {% case 'internalLink' %}
- {% set url = _self.getUrl(element.internalLink.first) %}
- {% case 'externalLink' %}
- {% set url = element.externalLink|url %}
- {% default %}
- {% set url = element.getUrl %}
- {% endswitch %}
- {{ url }}
- {% endmacro %}
- {% macro getTarget(element) %}
- {% switch element.type.handle %}
- {% case 'pageWithoutContent' %}
- {% set target = _self.getTarget(element.getChildren().first) %}
- {% case 'internalLink' %}
- {% set target = _self.getTarget(element.internalLink.first) %}
- {% case 'externalLink' %}
- {% set target = 'target="_blank"' %}
- {% default %}
- {% set target = '' %}
- {% endswitch %}
- {{ target }}
- {% endmacro %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement