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


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.