it-swarm-eu.dev

Zobrazit všechny vnořené odkazy v nabídce v Drupal 7

Jak zobrazím všechny vnořené odkazy v <ul><li> format in Drupal 7? Výchozí kód zobrazuje pouze odkazy 1. úrovně, přestože jsou uspořádány v nabídce Drupal admin menu jako vnořené):

<?php if ($main_menu): ?>
<div id="mainmenu"> <?php print theme( 'links__system_main_menu', array('links' => $main_menu) ); ?> </div>
<?php endif; ?>

Ve ff se zobrazí pouze 1. úroveň. nastavení nabídky:

-Fruits
---Apples
---Oranges
---Lemons
-Cars
---Big car
---Small car
---Fucked up car
-Whatever
6
enchance

Výchozí proměnná $main_menu V page.tpl.php Je nastavena na menu_main_menu() , což je kontextové zobrazení stromu hlavní nabídky.

Chcete-li získat požadovaný výstup, musíte získat celý strom menu pomocí menu_tree_all_data() a menu_tree_output() .

Chcete-li to provést ve svém motivu, vytvořte template.php, Pokud jste tak již neučinili, a přidejte novou předzpracovanou funkci pro šablonu stránky:

function THEMENAME_preprocess_page(&$variables) {
  // Get the entire main menu tree
  $main_menu_tree = menu_tree_all_data('main-menu');

  // Add the rendered output to the $main_menu_expanded variable
  $variables['main_menu_expanded'] = menu_tree_output($main_menu_tree);
}

Pak v page.tpl.php Můžete použít:

<?php print render($main_menu_expanded); ?> 

získat rozšířený, vnořený neuspořádaný seznam hlavní nabídky.

Pro trochu větší flexibilitu byste měli zvážit modul Menu Block , který vám umožní vytvořit bloky rozbalených nabídek z krabice s jeho Rozbalit všechny děti této možnosti , jakož i řady dalších možností pro segmentaci stromů nabídky.

22
user7

Existuje také modul menu_block, který umožňuje vytvářet libovolné množství přizpůsobených bloků zobrazujících potřebné části nabídky

0
Dmitry Vyal