Созонов Алексей

Веб-разработчик

Вывести на странице/в блоке подменю (submenu) drupal7

09.08.2015

Чтобы вывести подменю на странице или в блоке, можно воспользоваться следующим кодом:

<?php 
$vars['submenu'] = FALSE;
$menu_tree = menu_tree('main-menu'); 
$active_trail = menu_get_active_trail();
$active_trail_mlid = $active_trail[1]['mlid'];
if( array_key_exists($active_trail_mlid, $menu_tree) ) {
  $vars['submenu'] = $menu_tree[$active_trail_mlid]['#below'];  
}
$menul = array();
if($vars['submenu'] != FALSE) {
foreach($vars['submenu'] as $vars_key => $vars_item){
if(is_numeric($vars_key)){
    $menul['menu-'.$vars_key ]['node_type'] = 'page';
    $menul['menu-'.$vars_key ]['langcode'] = $vars_item['#localized_options']['langcode'];
    $menul['menu-'.$vars_key ]['attributes']['title'] = $vars_item['#title'];
    $menul['menu-'.$vars_key ]['href'] = $vars_item['#href'];
    $menul['menu-'.$vars_key ]['title'] = $vars_item['#title'];
}
}
print '<aside>'.theme('links', array('links' => $menul, 'attributes' => array('class'=> array('sub-menu')) )).'</aside>';
}
else
{
print '';
}
?>

Или

<?php
$menu_array = menu_navigation_links('menu-left-catalog', $depth);
print theme('links', array(
  'links' => $menu_array,
  'attributes' => array(
  'class' => array('menu'),
),));