Як відобразити підменю окремо від їх дерева меню? [зачинено]


8

Я намагаюся відобразити всі підменю 3-го рівня для пункту меню на одній сторінці, кожен з яких має свій власний блок відображення. Я спробував модуль «Блок меню», але він, здається, працює лише для активного сліду, а це означає, що я можу відображати всі меню 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

Що я хотів би показати, коли вибрано батьківське меню 2:

Блок 1: Меню SubChild 1A | Меню Subchild 2A | SubChild Menu 3A

Блок 2: Меню SubChild 1B | Меню Subchild 2B | SubChild Menu 3B

Будемо дуже вдячні за будь-яку допомогу щодо правильного способу відображення підменю окремо від дерева.


Вам потрібно зробити деякий прямий вибір DB.
niksmac

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

Чи "Дочірнє меню A" та "Дочірнє меню B" насправді не є пунктами меню (тобто вони просто служать заголовками чи роздільниками)? Крім того, чому саме вам потрібно / потрібно розділити два підменю на окремі блоки? Найкраще / найпростіше рішення може лежати поза тим, що ви намагаєтеся зробити тут, тому це допоможе дізнатися, яка ваша справжня кінцева мета, щоб ми могли розглянути інші варіанти.
sheena_d

Я в кінцевому підсумку робив прямий db fetch:
user1240408

Дочірнє меню A та дочірнє меню B - це обидва пункти меню. Я намагаюся відобразити всі підменю з дочірнього меню A в одному блоці, всі підменю з дочірнього меню B в іншому блоці тощо, і все це на одній сторінці. Це підсумкова сторінка для всіх різних розділів дочірнього меню.
користувач1240408

Відповіді:


5

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

... чи використовували ви коли-небудь функцію посилань на головне та другорядне меню у вашій темі та запитували: "як, на пекло, відображати будь-які пункти меню глибше?"

Ну, ось що робить цей модуль. Він забезпечує настроювані блоки дерев меню, починаючи з будь-якого рівня будь-якого меню. І більше!

Отже, якщо ви використовуєте лише функцію посилань на головне меню теми, ви можете додати і налаштувати блок "Головне меню (рівні 2+)". Цей блок з'явиться, коли ви переходите на одну з сторінок головного меню, і відображатиме дерево меню для другого рівня (і глибше) головного меню, і розширюватиметься, коли ви переходите по дереву. Ви також можете обмежити глибину дерева меню (наприклад, "Головне меню (рівні 2-3)") та / або розширити всі дочірні підменю (наприклад, "Головне меню (розширені рівні 2+)").


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.