патч для E-Journal для работы совместно с Category(cvs от 2.10.2006)

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

Аватар пользователя jason32 jason32 31 октября 2006 в 16:39

столкнулся с тем, что не работает модуль 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));

Я не стал копаться , где именно и как запрос формируется, а написал правильный запрос ВМЕСТО ТОЧЕК в вышеуказанном коде.

 $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 работать наверняка не будет