Как отобразить подменю отдельно от их дерева меню? [закрыто]


8

Я пытаюсь отобразить все подменю 3-го уровня для пункта меню на одной странице, каждый из которых имеет свой собственный блок отображения. Я попробовал модуль Menu Block, но он, кажется, работает только для активного следа, что означает, что я могу отображать все меню 2-го уровня и 3-го уровня как один блок, а не только меню 3-го уровня как отдельные модули.

В дополнение к модулю блока меню я также пытался получить доступ к дереву меню напрямую с помощью этого кода.

      $main = menu_navigation_links('main-menu', '2');
      echo theme('links__system_main_menu', array(
      'links' => $main,
      'attributes' => array(
      'id' => 'main-menu',
      'class' => array('links')
    ),
  ));
?>

Вот структура меню:

- Parent Menu 1
- Parent Menu 2
  - Child Menu A
    - SubChild Menu 1A
    - SubChild Menu 2A
    - SubChild Menu 3A    
- Child Menu B
  - SubChild Menu 1B
  - SubChild Menu 2B
  - SubChild Menu 3B

Что бы я хотел отобразить, когда выбрано Parent Menu 2:

Блок 1: Меню SubChild 1A | Подчайлд Меню 2А | Меню SubChild 3A

Блок 2: Меню SubChild 1B | Подчайлд Меню 2B | Меню SubChild 3B

Любая помощь в правильном отображении подменю отдельно от их дерева будет принята с благодарностью.


Вам нужно сделать прямую выборку из БД.
— Никсмак

Вы должны установить источник для вашего вторичного меню. Хотя это видео для Drupal 6, это видео очень помогло мне настроить его для Drupal 7: lullabot.com/node/444/play
— Тим

Разве «Дочернее меню А» и «Дочернее меню Б» на самом деле не являются пунктами меню (т.е. они просто служат заголовками или разделителями)? Кроме того, почему именно вам нужно / нужно разделить два подменю на отдельные блоки? Лучшее / простое решение может лежать вне того, что вы пытаетесь сделать здесь, поэтому оно поможет узнать, какова ваша реальная конечная цель, чтобы мы могли рассмотреть другие варианты.
— sheena_d

Я закончил делать прямую выборку из
— базы данных

Дочернее меню A и дочернее меню B являются пунктами меню. Я пытаюсь отобразить все подменю из дочернего меню A в одном блоке, все подменю из дочернего меню B в другом блоке и т. Д., Все на одной странице. Это сводная страница для всех разделов дочернего меню.
— user1240408

Ответы:


5

Я думаю, что лучший способ сделать это - просто использовать модуль блока меню . Вот цитата об этом (со страницы проекта модуля):

... Вы когда-нибудь использовали функцию ссылок на главное и дополнительное меню в своей теме и задавались вопросом: «Как, черт возьми, я могу отображать какие-либо пункты меню глубже, чем это?»

Ну, вот что делает этот модуль. Он предоставляет настраиваемые блоки деревьев меню, начиная с любого уровня любого меню. И более!

Поэтому, если вы используете только функцию ссылок главного меню своей темы, вы можете добавить и настроить блок «Главное меню (уровни 2+)». Этот блок появится, как только вы окажетесь на одной из страниц Главного меню, и покажет дерево меню для 2-го уровня (и глубже) вашего Главного меню и расширится, когда вы пройдете по дереву. Вы также можете ограничить глубину дерева меню (например, «Главное меню (уровни 2-3)») и / или развернуть все дочерние подменю (например, «Главное меню (расширенные уровни 2+)»).


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.