Есть ли модуль или сниппет, который выводит все пункты активного уровня меню?
Пример меню:
- Автомобили
- BMW
- Toyaota
- Писатели
- Пушкин
- Толстой
- Тютчев
Если выбран пункт "Пушкин" - надо вывести:
- Пушкин
- Толстой
- Тютчев
Если выбран пункт "Писатели" - надо вывести:
- Автомобили
- Писатели
Комментарии
попробуйте вот так:
<?
$active_level = 1;
$trail = array();
$mid = menu_get_active_nontask_item();
while ($mid && ($item = menu_get_item($mid)))
{
array_unshift($trail, $mid);
$mid = $item['pid'];
}
echo menu_tree($trail[$active_level]);
?>
http://d5.drupaldev.ru/node/15596 похожая тема уже была
Спасибо за ответы, но это не совсем то, что надо.
Таким способом выводится ВСЁ меню со всем вложениями (всё дерево),
а нужно вывести только все пункты текущего меню БЕЗ вложенных подпунктов.
Поясню на другом примере меню:
Если выбран пункт "Пушкин" - надо вывести ТОЛЬКО:
без вложенных меню.
Если выбран пункт "Сказки" - надо вывести ТОЛЬКО:
Можно вот так:
$item = menu_get_item(menu_get_active_nontask_item());
$parent = menu_get_item($item['pid']);
echo "<ul>";
foreach($parent['children'] as $itemID)
{
echo theme_menu_item($itemID);
}
echo "</ul>";
?>
To cardina1.
Большое Спасибо!
Это то что надо было.
Ещё бы проверку на существование Пунктов меню прикрутить - идеально бы было.
А так,
применил вот здесь
Что значит существование? Если их больше одного?
$item = menu_get_item(menu_get_active_nontask_item());
$parent = menu_get_item($item['pid']);
if (count($parent['children']) > 1)
{
echo "<ul>";
foreach($parent['children'] as $itemID)
{
echo theme_menu_item($itemID);
}
echo "</ul>";
}
?>