Народ, подскажите как посчитать все ноды на текущем языке, которые связаны с определенным термином таксономии и имеют определенный тип.
стандартный taxonomy_term_count_nodes($tid, $type = 0) считает ноды определенного типа на всех языках. У него обращение к базе такое:
$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);
ON t.vid = n.vid WHERE n.status = 1 AND n.type = '%s' GROUP BY t.tid"), $type);
На друпал.орг нашел запрос к базе, но он считает все ноды без связанных терминов:
db_result(db_query("SELECT COUNT(n.nid) FROM {node} n INNER JOIN {i18n_node} i ON n.nid = i.nid WHERE n.type = 'nodetype_example'
AND i.language ='%s'", $language));
AND i.language ='%s'", $language));
а вот как их объединить что-то не могу понять.
Комментарии
Чего-то я таблицу i18n_node не могу найти, она видать для 5-го Drupal была...
в таблице {node} есть поле language, так что надо просто включить его в запрос
<?php
$result = db_query(db_rewrite_sql("
SELECT t.tid, n.language, 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' AND n.language = 'ЯЗЫК' GROUP BY t.tid"), $type);
?>
вот как-то так.