taxonomy_term_count_nodes

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

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

Версии
5 – 6
taxonomy_term_count_nodes($tid, $type = 0)

Считает число опубликованных нод, содержащих терм.

Параметры

$tid ID терма

$type тип ноды $node->type. Если задан, taxonomy_term_count_nodes считает только ноды заданного типа $type содержащие терм $tid.

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

int Целое число отображающее количество нод. Результаты статически кэшируются.

▾ 1 функция вызывает taxonomy_term_count_nodes()

taxonomy_term_count_nodes in modules/taxonomy/taxonomy.module
Считает число опубликованных нод, содержащих терм.

Код

<?php
function taxonomy_term_count_nodes($tid, $type = 0) {
  static $count;

  if (!isset($count[$type])) {
    // $type == 0 always evaluates TRUE if $type is a string
    if (is_numeric($type)) {
      $result = db_query(db_rewrite_sql('SELECT t.tid, COUNT(n.nid) AS c FROM {term_node} t INNER JOIN {node} n ON t.vid = n.vid WHERE n.status = 1 GROUP BY t.tid'));
    }
    else {
      $result = db_query(db_rewrite_sql("SELECT t.tid, COUNT(n.nid) AS c FROM {term_node} t INNER JOIN {node} n ON t.vid = n.vid WHERE n.status = 1 AND n.type = '%s' GROUP BY t.tid"), $type);
    }
    $count[$type] = array();
    while ($term = db_fetch_object($result)) {
      $count[$type][$term->tid] = $term->c;
    }
  }
  $children_count = 0;
  foreach (_taxonomy_term_children($tid) as $c) {
    $children_count += taxonomy_term_count_nodes($c, $type);
  }
  return $children_count + (isset($count[$type][$tid]) ? $count[$type][$tid] : 0);
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

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