Как вывести количество материалов по термину?

Главные вкладки

Аватар пользователя ju_monstera ju_monstera 30 ноября 2009 в 23:46

Такая проблема: есть сайт о композиторе, есть словарь с названиями опер и тип материала "рецензия", в котором указывается термин. На странице оперы, соответственно, стоит ссылка вида term/N и по ней вываливается список рецензий на эту оперу. Все замечательно.

Но мы сделали общую страницу с табличкой "оперы - ссылки на рецензии", и сразу возникло желание указывать рядом количество имеющихся рецензий (с данным термином). А еще бы хорошо и количество комментариев во всех этих рецензиях. Лазила-лазила по статьям - так и не нашла, как это сделать. Подскажите, пожалуйста!

Комментарии

Аватар пользователя ju_monstera ju_monstera 1 декабря 2009 в 0:31

Большое спасибо!
Я тоже еще раз полазила за это время на сайте и нашла почти такое же решение http://www.drupal.ru/node/13080

Но остался открытым вопрос с количеством комментариев. Как-то можно узнать количество комментариев к ноде?

Аватар пользователя Zigs Zigs 1 декабря 2009 в 1:00

Есть такая табличка node_comment_statistics там все есть. В конце концов можно и запрос по самой таблице comments сделать с подсчетом.
Удачи.

Аватар пользователя VasyOK VasyOK 1 декабря 2009 в 12:26

Я бы решил эту проблему попроще. Для того, чтобы просто отображать количество статей привязанных к термину можно использовать модуль Taxonomy Treemenu. Можно и Taxonomy Menu, но он малость глюковатый.

Правда вывести количество комментариев этим модулем не получится.

Аватар пользователя ju_monstera ju_monstera 2 декабря 2009 в 2:07

Все получилось! Использовала в качестве рыбы код с http://www.drupal.ru/node/13080 с небольшими изменениями и плюс запрос к node_comment_statistics.

Дополнительная и измененная строчки, (если вдруг у кого возникнет такая же проблема):

$com_count = db_result(db_query("SELECT SUM(comment_count)
FROM {term_node} t LEFT JOIN {node_comment_statistics} c ON t.nid = c.nid
WHERE t.tid = %d", $term->tid));
$pole[]=Array ((($count) ? l($term->name, "taxonomy/term/$term->tid/all")." (рецензий - ".$count.", всего комментов - ".$com_count.")" : l($term->name, "taxonomy/term/$term->tid/all") ), $term->depth, $count, $term->tid);

Всем ответившим - спасибо за помошь!