taxonomy_get_tree

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

modules/taxonomy/taxonomy.module, строка 820

Версии
5 – 6
taxonomy_get_tree($vid, $parent = 0, $depth = -1, $max_depth = NULL)

Создает иерархическое представление словаря.

Параметры

$vid Для какого словаря создавать дерево.

$parent ID термина, под которым создавать дерево. Если 0, то создавать дерево всего словаря.

$depth Только для внутреннего пользования.

$max_depth Количество уровней дерева, которое возвращается. Оставьте NULL, чтобы вернуть все уровни.

Возвращаемое значение

Массив всех объектов терминов в дереве. Каждый объект термина дополнены атрибутами 'depth' и 'parents', которых обычно нет. Результаты статически кешируются.

▾ 11 функции вызывают taxonomy_get_tree()

forum_get_forums in modules/forum/forum.module
Returns a list of all forums for a given taxonomy id
forum_nodeapi in modules/forum/forum.module
Implementation of hook_nodeapi().
taxonomy_check_vocabulary_hierarchy in modules/taxonomy/taxonomy.module
Dynamicly check and update the hierarachy flag of a vocabulary.
taxonomy_form_all in modules/taxonomy/taxonomy.module
Generate a set of options for selecting a term from all vocabularies.
taxonomy_form_term in modules/taxonomy/taxonomy.admin.inc
Функция формы для редактирования термина. См. также taxonomy_form_term_submit()
taxonomy_get_tree in modules/taxonomy/taxonomy.module
Создает иерархическое представление словаря.
taxonomy_overview_terms in modules/taxonomy/taxonomy.admin.inc
Form builder for the taxonomy terms overview.
taxonomy_overview_terms_submit in modules/taxonomy/taxonomy.admin.inc
Submit handler for terms overview form.
taxonomy_select_nodes in modules/taxonomy/taxonomy.module
Находит все ноды, которые соответствуют выбранным условиям таксономии.
_forum_parent_select in modules/forum/forum.admin.inc
Returns a select box for available parent terms
_taxonomy_term_select in modules/taxonomy/taxonomy.module
Create a select form element for a given taxonomy vocabulary.

Код

<?php
function taxonomy_get_tree($vid, $parent = 0, $depth = -1, $max_depth = NULL) {
  static $children, $parents, $terms;

  $depth++;

  // We cache trees, so it's not CPU-intensive to call get_tree() on a term
  // and its children, too.
  if (!isset($children[$vid])) {
    $children[$vid] = array();

    $result = db_query(db_rewrite_sql('SELECT t.tid, t.*, parent FROM {term_data} t INNER JOIN {term_hierarchy} h ON t.tid = h.tid WHERE t.vid = %d ORDER BY weight, name', 't', 'tid'), $vid);
    while ($term = db_fetch_object($result)) {
      $children[$vid][$term->parent][] = $term->tid;
      $parents[$vid][$term->tid][] = $term->parent;
      $terms[$vid][$term->tid] = $term;
    }
  }

  $max_depth = (is_null($max_depth)) ? count($children[$vid]) : $max_depth;
  $tree = array();
  if ($max_depth > $depth && !empty($children[$vid][$parent])) {
    foreach ($children[$vid][$parent] as $child) {
      $term = drupal_clone($terms[$vid][$child]);
      $term->depth = $depth;
      // The "parent" attribute is not useful, as it would show one parent only.
      unset($term->parent);
      $term->parents = $parents[$vid][$child];
      $tree[] = $term;
      if (!empty($children[$vid][$child])) {
        $tree = array_merge($tree, taxonomy_get_tree($vid, $child, $depth, $max_depth));
      }
    }
  }

  return $tree;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему