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

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

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

user1240408
источник
Вам нужно сделать прямую выборку из БД.
Никсмак
Вы должны установить источник для вашего вторичного меню. Хотя это видео для Drupal 6, это видео очень помогло мне настроить его для Drupal 7: lullabot.com/node/444/play
Тим
Разве «Дочернее меню А» и «Дочернее меню Б» на самом деле не являются пунктами меню (т.е. они просто служат заголовками или разделителями)? Кроме того, почему именно вам нужно / нужно разделить два подменю на отдельные блоки? Лучшее / простое решение может лежать вне того, что вы пытаетесь сделать здесь, поэтому оно поможет узнать, какова ваша реальная конечная цель, чтобы мы могли рассмотреть другие варианты.
sheena_d
Я закончил делать прямую выборку из
базы данных
Дочернее меню A и дочернее меню B являются пунктами меню. Я пытаюсь отобразить все подменю из дочернего меню A в одном блоке, все подменю из дочернего меню B в другом блоке и т. Д., Все на одной странице. Это сводная страница для всех разделов дочернего меню.
user1240408

Ответы:

5

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

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

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

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

Мануэль Гарсия
источник