Guest User

Untitled

a guest
Nov 6th, 2017
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.88 KB | None | 0 0
  1. {% macro menu(menuCategory, currentPage, includeStartpage, level = 1, parent = null, original = null) %}
  2. {% set originalPage = (original)? original : currentPage %}
  3. {% set activeClass = '' %}
  4. {% if original is not null and currentPage is not null and original.parent is not null %}
  5. {% if original.parent.id == currentPage.id %}
  6. {% set activeClass = "active" %}
  7. {% endif %}
  8. {% endif %}
  9.  
  10. <ul class="{{ activeClass }} {% if parent == null %}clearfix{% endif %}" data-level="{{ level }}">
  11. {% if includeStartpage %}
  12. {% set startseite = craft.entries.section('homepage').first() %}
  13. <li {% if currentPage.id == startseite.id %}class="active" {% endif %}>
  14. <a href="{{ startseite.url }}" title="{{ startseite.title }}">{{ startseite.title|raw }}</a>
  15. </li>
  16. {% endif %}
  17.  
  18. {% switch menuCategory %}
  19. {% case 'mainmenu' %}
  20. {% set entries = craft.entries.section('pages').level(level).dontShowInMenu("not 1") %}
  21. {% case 'topmenu' %}
  22. {% set entries = craft.entries.section('pages').showInHeaderMenu('1') %}
  23. {% case 'footermenu' %}
  24. {% set entries = craft.entries.section('pages').showInFooterMenu('not 0') %}
  25. {% case 'descendants' %}
  26. {% set entries = parent.getChildren() %}
  27. {% endswitch %}
  28.  
  29. {% nav page in entries %}
  30. {% set url = _self.getUrl(page) %}
  31. {% set title = page.title %}
  32. {% set target = _self.getTarget(page) %}
  33. {% set class = "" %}
  34.  
  35. {% switch page.type.handle %}
  36. {% case 'internalLink' %}
  37. {% set title = page.linkName %}
  38. {% case 'externalLink' %}
  39. {% set title = page.linkName %}
  40. {% default %}
  41. {% endswitch %}
  42.  
  43. {% if (originalPage.getUrl == url|trim and not page.hasDescendants) %}
  44. {% set class = "active" %}
  45. {% endif %}
  46.  
  47.  
  48. {# Check if entry has descendants #}
  49. {% if not page.hasDescendants or (menuCategory == "footermenu" or menuCategory == "topmenu") %}
  50. {# List navigation item if entry has NO child entries #}
  51. <li class="{{ class }}">
  52. <a href="{{ url|trim }}" title="{{ title }}" {{ target }}>{{ title|raw }}</a>
  53. </li>
  54.  
  55. {% elseif menuCategory == "mainmenu" or menuCategory == "descendants" %}
  56. {# List navigation item if entry does have child entries #}
  57. <li>
  58. <a href="#" class="{{ class }}" title="{{ title }}">{{ title|raw }}</a>
  59. {{ _self.menu('descendants', page, false, level+1, page, originalPage ) }}
  60. </li>
  61. {% endif %}
  62. {% endnav %}
  63. </ul>
  64. {% endmacro %}
  65.  
  66. {% macro getUrl(element) %}
  67. {% switch element.type.handle %}
  68. {% case 'pageWithoutContent' %}
  69. {% set url = _self.getUrl(element.getChildren().first) %}
  70. {% case 'internalLink' %}
  71. {% set url = _self.getUrl(element.internalLink.first) %}
  72. {% case 'externalLink' %}
  73. {% set url = element.externalLink|url %}
  74. {% default %}
  75. {% set url = element.getUrl %}
  76. {% endswitch %}
  77. {{ url }}
  78. {% endmacro %}
  79.  
  80. {% macro getTarget(element) %}
  81. {% switch element.type.handle %}
  82. {% case 'pageWithoutContent' %}
  83. {% set target = _self.getTarget(element.getChildren().first) %}
  84. {% case 'internalLink' %}
  85. {% set target = _self.getTarget(element.internalLink.first) %}
  86. {% case 'externalLink' %}
  87. {% set target = 'target="_blank"' %}
  88. {% default %}
  89. {% set target = '' %}
  90. {% endswitch %}
  91. {{ target }}
  92. {% endmacro %}
Add Comment
Please, Sign In to add comment