Посчитать ноды с опеределенным термином, определенного типа на текущем языке

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

Аватар пользователя droppy droppy 20 августа 2009 в 13:51

Народ, подскажите как посчитать все ноды на текущем языке, которые связаны с определенным термином таксономии и имеют определенный тип.

стандартный 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);

На друпал.орг нашел запрос к базе, но он считает все ноды без связанных терминов:

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));

а вот как их объединить что-то не могу понять.

Комментарии

Аватар пользователя Lurker Lurker 20 августа 2009 в 15:27

в таблице {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);
?>

вот как-то так.