Я хотел бы отобразить пункты меню третьего уровня в Zotonic.
Например, если у меня есть страницы в иерархии, подобные следующей:
Я хочу, чтобы Почему работа здесь? была доступнав выпадающих меню.
Как получить пункты меню третьего уровня в Zotonic?
Я использовал Page Connections и измененный шаблон меню. Для этого требуется Zotonic 0.5.0 или более поздняя версия.
Menu
text
Редактировать /modules/mod_menu/templates/_menu.tpl:
/modules/mod_menu/templates/_menu.tpl
Включите оригинальный шаблон меню:
{% if menu %} <ul id="{{ id_prefix }}navigation" class="clearfix at-menu do_superfish"> {% for mid,depth,nr,has_sub in menu %} {% if not mid %} {% if depth > 1 %}</ul></li>{% endif %} {% else %} {% if nr == 1 and not forloop.first %}<ul{% if mid|member:path %} class="onpath"{% endif %}>{% endif %} <li id="{{ id_prefix }}nav-item-{{nr}}" class="{% if is_first %}first {% endif %}{% if is_last %}last{% endif %}"> <a href="{{ m.rsc[mid].page_url }}" class="{{ m.rsc[mid].name }}{% if mid == id %} current{% else %}{% if mid|member:path %} onpath{% endif %}{% endif %}">{{ m.rsc[mid].short_title|default:m.rsc[mid].title }}</a> {% if not has_sub %}</li>{% endif %} {% endif %} {% endfor %} {% if forloop.last %}{% include "_menu_extra.tpl" %}{% endif %} </ul> {% endif %}
В версию меню третьего уровня:
{% if menu %} <ul id="{{ id_prefix }}navigation" class="clearfix at-menu do_superfish"> {% for mid,depth,nr,has_sub in menu %} {% if not mid %} {% if depth > 1 %}</ul></li>{% endif %} {% else %} {% if nr == 1 and not forloop.first %}<ul{% if mid|member:path %} class="onpath"{% endif %}>{% endif %} <li id="{{ id_prefix }}nav-item-{{nr}}" class="{% if is_first %}first {% endif %}{% if is_last %}last{% endif %}"> <a href="{{ m.rsc[mid].page_url }}" class="{{ m.rsc[mid].name }}{% if mid == id %} current{% else %}{% if mid|member:path %} onpath{% endif %}{% endif %}">{{ m.rsc[mid].short_title|default:m.rsc[mid].title }}</a> {% if depth == 2 %} {% for submenu in m.rsc[mid].menu %} {% if forloop.first %}<ul>{% endif %} <li id="{{ id_prefix }}nav-item-{{nr}}" class="{% if is_first %}first {% endif %}{% if is_last %}last{% endif %}"> <a href="{{ m.rsc[submenu].page_url }}" class="{{ m.rsc[submenu].name }}{% if submenu == id %} current{% else %}{% if submenu|member:path %} onpath{% endif %}{% endif %}">{{ m.rsc[submenu].short_title|default:m.rsc[submenu].title }}</a></li> {% if forloop.last %}</ul>{% endif %} {% endfor %} {% endif %} {% if not has_sub %}</li>{% endif %} {% endif %} {% endfor %} {% if forloop.last %}{% include "_menu_extra.tpl" %}{% endif %} </ul> {% endif %}
Путем добавления особого случая для подключения на странице меню элементов второго уровня:
{% if depth == 2 %} {% for submenu in m.rsc[mid].menu %} {% if forloop.first %}<ul>{% endif %} <li id="{{ id_prefix }}nav-item-{{nr}}" class="{% if is_first %}first {% endif %}{% if is_last %}last{% endif %}"> <a href="{{ m.rsc[submenu].page_url }}" class="{{ m.rsc[submenu].name }}{% if submenu == id %} current{% else %}{% if submenu|member:path %} onpath{% endif %}{% endif %}">{{ m.rsc[submenu].short_title|default:m.rsc[submenu].title }}</a></li> {% if forloop.last %}</ul>{% endif %} {% endfor %} {% endif %}
In Соединения страниц добавить * Меню * с на каждую страницу, которой требуются элементы третьего уровня в меню