Люди, я пользуюсь вот этим скриптом для вывода похожих материалов от xandeadex.
if (!$vars['page'] || !$vars['node'] || !isset($vars['field_tags']) || !count($vars['field_tags'])) {
return;
}
$tids = array();
foreach ($vars['field_tags'] as $tag) {
$tids[] = $tag['tid'];
}
$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title'));
$query->addExpression('COUNT(*)', 'hits');
$query->leftJoin('taxonomy_index', 'ti', 'n.nid = ti.nid');
$query->condition('n.type', $vars['type']);
$query->condition('n.status', NODE_PUBLISHED);
$query->condition('ti.tid', $tids, 'IN');
$query->condition('n.nid', $vars['nid'], '<>');
$query->groupBy('n.nid');
$query->orderBy('hits', 'DESC');
$query->orderBy('n.created', 'DESC');
$query->range(0, 3);
$vars['content']['similar'] = node_title_list($query->execute(), 'Похожие материалы');
$vars['content']['similar']['#weight'] = 2;
}
Всё бы хорошо, но меня очень сильно/безумно/дико достал этот ворнинг:
Undefined index: field_janr в функции start_preprocess_node() (строка 3 в файле .../sites/all/themes/start/template.php)
Когда я спросил, как его убрать, xandeadex ответил, что надо сделать проверку на наличие поля и кинул мне вот эту бяку:
if (isset($vars['field_tags']))
А вот куда именно её вставлять, этот гад уважаемый человек не объяснил, сказав что-то типа - кто не знает PHP, тот идёт нацензура.
Надеюсь, хоть на этом форуме есть добрые люди, которые помогут мне с этим разобраться.
Комментарии
По моему лучший вариант сделать с помощью Views.
Попробуйте similar by terms
Скорее всего, Вам подойдёт. Быстро, просто, удобно, толково. И самое главное РАБОТАЕТ.
C помощью Вьюса не получилось. И так и сяк катал-валял - не выходит.
similar by terms пробовал - тоже косяков с ним много. Да и заморочный модуль - под него надо отдельно регион создавать.
Снипет работает хорошо, но этот ворнинг сводит все его плюсы на нет. Хотел уже, было, его задисплейнонить, но ведь так и все остальные системные ворнинги будут скрываться, а они нужны. Да и не кошерно это.
Тут хорошее руководство: http://giraffesdoexist.com/ru/content/article/pohozhie-materialy-v-drupa...