Под-навигация в Grav CMS - PullRequest
0 голосов
/ 01 мая 2018

Я хочу сделать subnav для моей Grav Theme. Я уже видел вопрос на эту тему: GRAV субнавигатор

{% block navigation %}
{% macro loop(page) %}
    {% for p in page.children %}
        {% if p.visible %}
        {% set active_page = (p.active or p.activeChild) ? 'active' : '' %}
            <div>
                <a href="{{ p.url }}" class="btn btn-nav" role="button">
                    {{ p.menu }}
                </a>
                {% if p.children.count > 0 %}
                <div class="dropdown">
                    <a href="{{ p.url }}" class="btn btn-nav dropdown-toggle" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                        {{ p.menu }}
                        <span class="icon icon--bottom"></span>
                    </a>
                    <div class="dropdown-menu" aria-labelledby="dropdownMenulink" x-placement="bottom-start">
                        {{ _self.loop(p) }}
                    </div>
                </div>
                {% endif %}
            </div>
        {% endif %}
    {% endfor %}
{% endmacro %}
{% endblock %} 

<div class="topics" style="display: flex;">
{{ _self.loop(pages) }}
</div>

Проблема, с которой я столкнулся, состоит в том, что с моим кодом страницы отображаются в списке два раза в навигации, и это из-за тега a в выпадающем списке div.

navigation picture

Есть ли способ, чтобы в раскрывающемся списке можно было указать тег a со всей информацией, которую я написал в своем коде? И это только один раз появляется в навигации.

Спасибо за ваши ответы!

1 Ответ

0 голосов
/ 20 июня 2018
{% block navigation %}
    {% macro loop(page) %}
        {% for p in page.children %}
            {% if p.visible %}
            {% set active_page = (p.active or p.activeChild) ? 'active' : '' %}
                <div>
                    {% if p.children.count > 0 %}
                    <div class="dropdown">
                        <a href="{{ p.url }}" class="btn btn-nav dropdown-toggle" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                            {{ p.menu }}
                            <span class="icon icon--bottom"></span>
                        </a>
                        <div class="dropdown-menu" aria-labelledby="dropdownMenulink" x-placement="bottom-start">
                            {{ _self.loop(p) }}
                        </div>
                    </div>
                    {% else %}
                        <a href="{{ p.url }}" class="btn btn-nav" role="button">
                            {{ p.menu }}
                        </a>
                    {% endif %}
                </div>
            {% endif %}
        {% endfor %}
    {% endmacro %}
{% endblock %}

<div class="topics" style="display: flex;">
    {{ _self.loop(pages) }}
</div>

Это код, который я использовал вместо того, что я написал в своем вопросе

...