Drupal: Выводим список терминов из плоского словаря таксономии

По работе была необходимость перенести информацию (очень много информации) с сайта на древнем Drupal’е на 1С-Битрикс. В процессе нужно было получить термины из словаря. Приведенный ниже код решает данную задачу 🙂

Drupal 6:

<?php$terms = db_query("SELECT tid, name, (SELECT COUNT(*) FROM {term_node} tnLEFT JOIN {node} n ON tn.nid = n.nidWHERE tn.tid = td.tid AND n.status = 1) node_count FROM {term_data} tdWHERE vid = %dORDER BY weight", ID_СЛОВАРЯ);$items = array();while ($term = db_fetch_array($terms)) {$items[] = l($term['name'], 'taxonomy/term/' . $term['tid']) . ' (' . $term['node_count'] . ')';}echo theme('item_list', $items);?>

Drupal 7:

$terms = db_query("SELECT tid, name, (SELECT COUNT(*) FROM {taxonomy_index} tiLEFT JOIN {node} n ON ti.nid = n.nidWHERE ti.tid = td.tid AND n.status = 1) node_count FROM {taxonomy_term_data} tdWHERE vid = :vidORDER BY weight", array(':vid' => ID_СЛОВАРЯ));$items = array();foreach ($terms as $term) {$items[] = l($term->name, 'taxonomy/term/' . $term->tid) . ' (' . $term->node_count . ')';}echo theme('item_list', array('items' => $items));

Вместо ID_СЛОВАРЯ нужно указать номер словаря в котором находится список разделов.