столкнулся с тем, что не работает модуль E-journal с модулем категорий . Начал копать и нашел, где баг . Итак:
файл [b]views.vodule[/b]
function _ejournal_issue_get_articles($journal, $iid, $ignore_vid = FALSE) {
if(!$ignore_vid) { //administrative functions want to get all articles, regardless if the articles belong to vid or not
$vids = _ejournal_vocabulary_build_sql($journal->vid, 'td');
}
$order = variable_get('ejournal_issue_order', 'ASC');
if(!ejournal_user_access(array('chief editor'), $journal)) {
$restriction = ' AND n.status=1 ';
}
$where_iid=($iid!=0 and $iid!=-1) ? "ea.iid='" . $iid . "' AND" : '';
........................................
$articles = db_query(db_rewrite_sql($sql));
if(!$ignore_vid) { //administrative functions want to get all articles, regardless if the articles belong to vid or not
$vids = _ejournal_vocabulary_build_sql($journal->vid, 'td');
}
$order = variable_get('ejournal_issue_order', 'ASC');
if(!ejournal_user_access(array('chief editor'), $journal)) {
$restriction = ' AND n.status=1 ';
}
$where_iid=($iid!=0 and $iid!=-1) ? "ea.iid='" . $iid . "' AND" : '';
........................................
$articles = db_query(db_rewrite_sql($sql));
Я не стал копаться , где именно и как запрос формируется, а написал правильный запрос ВМЕСТО ТОЧЕК в вышеуказанном коде.
$sql="SELECT DISTINCT n.nid, n.type, n.title, n.changed, n.status, n.moderate, t.cid, td.name, ea.iid, ea.weight AS article_weight, ea.proofreader_mark AS p_status FROM {node} n INNER JOIN {ejournal_articles} ea ON n.nid = ea.nid LEFT JOIN {category_node} t ON n.nid=t.nid LEFT JOIN {term_data} td ON t.cid=td.tid WHERE ".$where_iid." ea.jid='" . $journal->jid ."' $vids $restriction ORDER BY ea.weight $order, td.weight $order, td.name $order, n.title $order";
В итоге всё прекрасно заработало.Без категорий НЕ ПРОВЕРЯЛ, так что при использовании taxonomy работать наверняка не будет