Drupal → Вывести термины словаря таксономии в виде дерева

29.02.2012

Имеется словарь tags:

Список терминов таксономии

Задача — вывести термины этого словаря в виде дерева:

Дерево терминов таксономии

Код:

/**
 * Return rendered taxonomy tree
 */
function mymodule_taxonomy_tree($vocabulary_name) {
  $vid = taxonomy_vocabulary_machine_name_load($vocabulary_name)->vid;
  $terms = taxonomy_get_tree($vid);
  return theme('item_list', array('items' => _mymodule_taxonomy_tree($terms)));
}

/**
 * Helper for mymodule_taxonomy_tree()
 */
function _mymodule_taxonomy_tree($terms, $parent = 0) {
  $items = array();
  
  foreach ($terms as $term) {
    if (in_array($parent, $term->parents)) {
      $items[] = array(
        'data' => $term->name,
        'children' => _mymodule_taxonomy_tree($terms, $term->tid),
      );
    }
  }
  
  return $items;
}

Использование:

echo mymodule_taxonomy_tree('tags');

Полезные статьи:
Вывести термины словаря таксономии в виде дерева с помощью Views Tree.
Программно вывести термины словаря в виде дерева с подсчётом количества материалов.

Написанное актуально для
Drupal 7
Похожие записи

Комментарии

Евгений
29.02.2012, 21:05

Еще такую штуку можно замутить через taxonomy_block

neuronaut
05.03.2012, 01:03

спасибо тебе, дружище !
когда то искал очень долго решение...

Спасибо за полезную статью. Подскажите как добавить ссылки терминам, чтобы работало как навигационное меню.

Антон
22.03.2014, 23:15

Спасибо, хорошо, помогло. Лайкаю в соцсети вас.

подскажите как сделать такого плана меню раскрывающимся ? можно классы добавлять expanded.

Добавить комментарий