xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Имеется словарь 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
Похожие записи

Комментарии RSS

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

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

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

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

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

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании