На странице статьи должен выводится блок с похожими материалами.
Вывод статей из того же термина не подойдёт.
Нужна именно такая схема: при создании ноды в какое-то поле вписываешь ключевик. Если есть ещё ноды с таким же ключевиком, то на странице созданной ноды должен выводится список этих статей.
Как это сделать?
Комментарии
Всё равно термины. Добавь блок, видимый только на просмотре этих материалов. А потом делай код, ищущий и показывающий нужные ноды по термину.
Модуль Similar terms? Или скорее NodeQueue, да точно.
Может, правильнее ключевик вписывать в словарь таксономии (свободный ввод)?
Для таксономии, есть например такой сниппет (не помню, откуда взял)
<?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;
?>
словарь таксономии (свободный ввод) это в крайнем случае...
NodeQueue и Similar terms посмотрю...