Skip to content
Snippets Groups Projects
menu_sub.html 3.67 KiB
Newer Older
  • Learn to ignore specific revisions
  • Tom Wiesing's avatar
    Tom Wiesing committed
    {% comment %}
      This page creates a submenu item. It expects an appropriate `item` as argument. 
      Furthermore, it requires the page_priors global variable
    {% endcomment %}
    
    {% unless item.menu_hidden %}
    
      <!-- Figure out our current location -->
      {% assign url_parts = page.url | split: '/' %}
      {% assign base_url = url_parts | last %}
      {% assign base_folder = url_parts[1] %}
    
      <!-- Find out if we are active -->
      {% assign menu_active = false %}
    
      <!-- if we are in the right folder, we are active -->
      {% if base_folder == item.folder %}
        {% assign menu_active = true %}
      {% endif %}
      
      <!-- find all our priorities and also check for activity -->
      {% capture priors %}
        {{ page_priors }}
        {% for item in item.items %}
          {% unless item.menu_page %}
            {% unless item.external_page %}
              {% if item.url == page.url %}
                {% assign menu_active = true %}
              {% endif %}
            {% endunless %}
          {% endunless %}  
          {% assign value = item.menu_order %}
          {% include print_number.liquid %},
        {% endfor %}
      {% endcapture %}
      {% assign priors = priors | normalize_whitespace | replace: " ", "" | split:"," | uniq | sort %}
      
      <!-- Find the current folder -->
      {% assign item_folder = item.folder %}
    
      <li class="no-padding">
        <ul class="collapsible collapsible-accordion">
          <li class="bold">
            <a class="collapsible-header {% if menu_active %}active{% endif %}">
            {% if item.menu_title %}
              {{ item.menu_title }}
            {% else %}
              {{ item.title }}
            {% endif %}
            </a>
            <div class="collapsible-body">
              <ul>
                <!-- Start by iteratig over the priorities -->
                {% for p in priors %}
                  
                  <!-- If we have folders, iterate over them -->
                  {% if item.folder %}
                    {% for item in site.pages %}
                    
                      <!-- read item priority -->
                      {% assign value = item.menu_order %}
                      {% capture ip %}{% include print_number.liquid %}{% endcapture %}
                      {% assign ip = ip | normalize_whitespace | replace: " ", "" %}
                      
                      <!-- pick all the ones with the current priority -->
                      {% if ip == p %}
                        
                        <!-- get the current page -->
                        {% assign sub_parts = item.url | split: '/' %}
                        {% assign sub_url = sub_parts | last %}
                        {% assign sub_folder = sub_parts[1] %}
                        
                        <!-- if we are in the right folder, include it -->
                        {% if sub_folder == item_folder %}
                          {% include menu_single.html %}
                        {% endif %}
                        
                      {% endif %}
                      
                    {% endfor %}
                  {% endif %}
                  
                  <!-- if we have items, iterate over them -->
                  {% if item.items %}
                    {% for item in item.items %}
                      <!-- read item priority -->
                      {% assign value = item.menu_order %}
                      {% capture ip %}{% include print_number.liquid %}{% endcapture %}
                      {% assign ip = ip | normalize_whitespace | replace: " ", "" %}
                      
                      <!-- pick all the ones with the current priority -->
                      {% if ip == p %}
                      
                        {% include menu_single.html %}
                        
                      {% endif %}
                    {% endfor %}
                    
                  {% endif %}
                {% endfor %}
              </ul>
            </div>
          </li>
        </ul>
      </li>
    {% endunless %}