Вывод нужного уровня подменю в Drupal

Система меню в друпале сделана правильно и в большинстве случаев не требует установки каких то дополнительных модулей, чтобы получить тот результат, который требуется. И в данной статье мы не будем как то дополнять саму систему меню drupal-а.

В тоже время штатные блоки (blocks) предоставляемые модулем меню не сильно радуют гибкостью настроек. Да и нет фактически никаких настроек.

Задача

Не редко возникает следующая задача — вывести не всё меню, а меню соответствующее подразделу сайта. Подразумевается, что где то выводится содержимое корня меню (допустим полоска главного меню, построенная на основе primary-menu), т.е. какие то основные разделы сайта. А уже в самих разделах нужно показать блок меню с подразделами, исключая корень (первый уровень меню).

Нужно это обычно для того, чтобы не дублировать главное меню в блоке с подменю. Также я сталкивался с решениями в дизайне, когда отдельно выводят первые два уровня меню (корень и подуровень) и нужно как бы отсечь два уровня меню от корня для вывода их в разделах сайта.

Модуль

Код, решающий эту задачу, состоит из одной короткой функции, и ещё одна функция объявляет блок (block) для движка drupal.

Суть работы сводится к тому, что мы получаем данные всего дерева меню, а затем убираем нужное число уровней (число итераций, устанавливаемое в цикле) от корня меню.

Если модуль вам может оказаться полезным — качайте архив.

Написать комментарий

Мало букафф? Читайте есчо !

Регистрация/авторизация в Drupal по учетке в соц.сетях

Май 12, 2013 г.

Самое не приятное, с чем можно встретиться на многих сайтах - это регистрация учетной записи. Неприятное ощущение усиливается ещё и от контраста - везде ...

Читать

Мультизагрузка изображений в поле imagefield в Drupal 6

Июль 12, 2014 г.

Я уже создавал материал на данную тему ранее, когда искал решение данной задачи для lux-e.ru. Было это 2,5 года назад, но в целом ничего не поменялось. ...

Читать

 

Комментарии к «Вывод нужного уровня подменю в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: