Есть несколько категорий статей, при просмотре статьи нужно вывести в блок другие статьи из той же категории. Скорей всего есть какое-то простое решение с модулем views, но я пока не до конца в нем разобрался. Не подскажете как это возможно сделать? Какими средствами лучше воспользоваться?
Комментарии
сниппет
<?php
/**
* Сниппет блока для отображения статей с терминами, аналогичными
* отображаемой статьи. Статьи отсортированы по времени создания.
* Текущая статья из списка удаляется.
*
* Если необходимо не отображать блок при отсутствии статей, надо
* задать $no_items_text = '';
*
*/
// номера словарей для поиска терминов
$vids = array('2');
// количество ссылок на статьи
$list_length = 5;
// текст при отсутствии найденых статей
$no_items_text = '';
$tids = array();
foreach($vids as $vid)
foreach(taxonomy_node_get_terms_by_vocabulary(arg(1), $vid) as $tid)
$tids[] = $tid->tid;
if(!count($tids))
return $no_items_text;
$tids = join($tids, ',');
$list_length++;
$query = "SELECT DISTINCT(n.nid), n.title, n.created FROM {node} n INNER JOIN {term_node} tn ON n.nid = tn.nid WHERE tn.tid in ($tids) AND n.status = 1 ORDER BY n.created DESC LIMIT $list_length";
$sql = db_rewrite_sql($query);
$result = db_query($sql);
$items = array();
$current_find = false;
while ($item = db_fetch_object($result))
if($item->nid == arg(1))
$current_find = true;
else
$items[]= l($item->title, "node/".$item->nid);
if(!$current_find)
array_pop($items);
return (count($items))? theme('item_list',$items) : $no_items_text; ?>
Спасибо!
Как раз искал такой сниппет!
Только вопрос:
<<
// номера словарей для поиска терминов
$vids = array('2');
>>
Словарь только один добавляется, как несколько указать? Ни через запятую, ни через + не работает.
Что, для трех словарей нужно три блока создавать со сниппетом?
Или есть какой-нибудь плагин для "похожих материаллов"?
Посмотри также вот этот модуль, выполняет аналогичную функцию.
Спасибо! Но проблему решил другим способом. Установил content template и для каждого типа материалов сделал разный шаблон с разным кодом сниппета. Сontent template все-равно нужен был потому что надо было делать как то вывод "похожих материалов" после поста и до комментариев, а если блок создавать - его можно только после комментариев, в самом низу поста вывести.
Спасибо! Но проблему решил другим способом. Установил content template и для каждого типа материалов сделал разный шаблон с разным кодом сниппета. Сontent template все-равно нужен был потому что надо было делать как то вывод "похожих материалов" после поста и до комментариев, а если блок создавать - его можно только после комментариев, в самом низу поста вывести.
Спасибо! Но проблему решил другим способом. Установил content template и для каждого типа материалов сделал разный шаблон с разным кодом сниппета. Сontent template все-равно нужен был потому что надо было делать как то вывод "похожих материалов" после поста и до комментариев, а если блок создавать - его можно только после комментариев, в самом низу поста вывести.