Вывод статей из той же категории, что и выбранная

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

Аватар пользователя DrTermiT DrTermiT 23 июля 2008 в 4:06

Есть несколько категорий статей, при просмотре статьи нужно вывести в блок другие статьи из той же категории. Скорей всего есть какое-то простое решение с модулем views, но я пока не до конца в нем разобрался. Не подскажете как это возможно сделать? Какими средствами лучше воспользоваться?

Комментарии

Аватар пользователя Химический Али Химический Али 23 июля 2008 в 9:22

сниппет


<?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?>
Аватар пользователя kudrjashv kudrjashv 30 августа 2008 в 20:32

Как раз искал такой сниппет!
Только вопрос:
<<
// номера словарей для поиска терминов
$vids = array('2');
>>

Словарь только один добавляется, как несколько указать? Ни через запятую, ни через + не работает.
Что, для трех словарей нужно три блока создавать со сниппетом?
Или есть какой-нибудь плагин для "похожих материаллов"?

Аватар пользователя kudrjashv kudrjashv 31 августа 2008 в 17:25

"Ruslan413" wrote:
Опубликовано Ruslan413 в вс, 31/08/2008 - 11:01.

Посмотри также вот этот модуль, выполняет аналогичную функцию.

Спасибо! Но проблему решил другим способом. Установил content template и для каждого типа материалов сделал разный шаблон с разным кодом сниппета. Сontent template все-равно нужен был потому что надо было делать как то вывод "похожих материалов" после поста и до комментариев, а если блок создавать - его можно только после комментариев, в самом низу поста вывести.

Аватар пользователя kudrjashv kudrjashv 31 августа 2008 в 20:59

"Ruslan413" wrote:
Опубликовано Ruslan413 в вс, 31/08/2008 - 11:01.

Посмотри также вот этот модуль, выполняет аналогичную функцию.

Спасибо! Но проблему решил другим способом. Установил content template и для каждого типа материалов сделал разный шаблон с разным кодом сниппета. Сontent template все-равно нужен был потому что надо было делать как то вывод "похожих материалов" после поста и до комментариев, а если блок создавать - его можно только после комментариев, в самом низу поста вывести.

Аватар пользователя kudrjashv kudrjashv 31 августа 2008 в 21:13

"Ruslan413" wrote:
Опубликовано Ruslan413 в вс, 31/08/2008 - 11:01.

Посмотри также вот этот модуль, выполняет аналогичную функцию.

Спасибо! Но проблему решил другим способом. Установил content template и для каждого типа материалов сделал разный шаблон с разным кодом сниппета. Сontent template все-равно нужен был потому что надо было делать как то вывод "похожих материалов" после поста и до комментариев, а если блок создавать - его можно только после комментариев, в самом низу поста вывести.