Вы здесь

Все nid дочерних элементов меню

1

Подскажите функцию с помощью которой можно получить все пункты дочерних элементов выбранного пункта меню.

Версия Drupal: 
7.x
Вопрос задан 29.03.2015 - 23:50
Аватар пользователя shu
shu
178
function _custom() {

  $menu_name = 'menu-new-dropdown-menu'; //название меню, откуда собирать дочерние элементы

  $menu = menu_tree_all_data($menu_name); // получаем элементы меню

  foreach ($menu as $menu_item => $menu_item_value) { //для каждого верхнего элемента выбранного меню
    $nid = explode('/', $menu_item_value['link']['link_path']); //получаем ссылку на этот элемент
    $array_rec[] = recursion($menu_item_value['below']); //отправляем в рекурсивную функцию массив дочерних элементов
  }

return $array_rec;

}


function recursion($intro_array, &$arr = array()){

  foreach ($intro_array as $key => $value) {
    if(isset($value['below'])){          
        recursion($value['below'], $arr);
    }
    $nid = explode('/', $value['link']['link_path']);
    array_push($arr, $nid[1]);
  }

    return $arr;
} 
Комментарий оставлен 30.03.2015 - 14:33

Как-то так получилось. На выходе массив с дочерними элементами меню. При этом меню может быть любой вложенности.

Комментарий оставлен 30.03.2015 - 14:33

Ответы