Модуль Associated Nodes позволяет гибко создавать списки ассоциированных с материалом нод, причем делает это по различным критериям, например, по признакам таксономии или по полям CCK.
Можно также задать приоритет (вес) того или иного критерия. Результат сортировки по всем критериям собирается главным модулем для каждой ноды. В итоге можно получить для данной ноды все другие ноды, ассоциированные с ней.
Можно определять и свои критерии с помощью API.
Страница проекта
http://drupal.org/project/associated_nodes
В комментариях PVasili предлагает альтернативы:
Relevant Content - куча блоков и 2 критерия тип материала и словарь
http://drupal.org/project/relevant_content
Similar Entries - только 1 блок, возможно исключить термины из списка
http://drupal.org/project/similar
Related links - 3 блока и много различных критериев отбора
http://drupal.org/project/relatedlinks
Комментарии
полезно, спасибо
спасибо. полезная вещь!
Интересно, жаль нет большого сайта на котором можно было бы проверить качество подбора похожих материалов.
Но направление верное! Разные словари с разными весами терминов - это потенциальная гибкость и качество настройки...
теперь как буридановский осел что выбирать
Associated Nodes. Пробовал, удобно но визуально страницы стали долго открываться. Видимо тяжелые запросы к базе идут.
Relevant Content - понравилось,
но лично мне больше подходит Similar By Terms, тоже можно делать несколько блоков с разными настройками. Выводит либо заголовки либо тизеры. Относительно шустрый модуль.
Similar Entries, Related links мне не подошли.
В блоке созданном Associated Nodes не отображается ссылка на открытую в данное время статью. В taxonomy quick find отображалась и ссылка на открытую статью. Как это можно исправить?
Так и не понял как он работает. Создавал ассоциации но нигде кроме настроек модуля их не увидел. Информации не нашел. Удалил.
Стоит Similar Entries
прочитал эту статью
как то засомневался, что использую лучшее решение в плане производительности
А каким образом отсортировать выводимые модулем Associated Nodes заголовки нод, скажем по алфавиту, а не по номеру нид (по умолчанию)?
може кто знает что нить под семерку для этих целей?
Legat, без модулей в 7 можно реализовать таким способом: http://drupal.org/node/65375#comment-4264226
На себе проверено
разобрался, спасибо. только непонятно, как сделать так, чтобы отображались самые близкие в порядке добавления к текущей (просматриваемой) ноде ноды, так как сортировка по алфавиту и по дате не особо устраивает, помогите пожалуйста)
О, мне как раз надо было
Гранд Мерси Июньскому жуку
мм.. сортанул по ниду контента... вроде норм стало выводится. если есть вариант лучше, отпишите.
хм, столкнулся с вопросм
а где собственно добавлять аргументы?
contextual filters
а вот как вставить блок похожих материалов в node.tpl.php я не разобрался
прочитав эту статью и поэкспериментировав до хрена раз с приведенным там кодом у меня никак не получилось его вывести(.. может кто помочь?
contextual filters
да, я уж разобрался, правда не выводит почему то
Можно попросить экспорт этого вида, у тех, у кого получилось?
что касается той инструкции, так это для вставки в шаблон, а не для вставки в ноду. Вставка в ноду это куда более большее количество кода.
Вот ведь. Для меня это оказалась единственной инструкцией, которая заработала с первого раза )
Рабочий вид прикрепляю.
Ой, я опоздала, но пусть на всякий случай будет )
Может кто поделится ссылкой на статью, где разбирается вставка вида в node.tpl.php?
Или самим кодом... искал и ничего рабочего под d7 не нашел
Экспорт вида.
$view = new view;
$view->name = 'related';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Похожие материалы';
$view->core = 7;
$view->api_version = '3.0-alpha1';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Похожие материалы';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['distinct'] = TRUE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Сбросить';
$handler->display->display_options['pager']['type'] = 'some';
$handler->display->display_options['pager']['options']['items_per_page'] = '7';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['style_plugin'] = 'list';
$handler->display->display_options['row_plugin'] = 'fields';
/* Поле: Содержимое: Заголовок */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['title']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['title']['alter']['trim'] = 0;
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = 0;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = 0;
$handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['title']['alter']['html'] = 0;
$handler->display->display_options['fields']['title']['hide_empty'] = 0;
$handler->display->display_options['fields']['title']['empty_zero'] = 0;
$handler->display->display_options['fields']['title']['link_to_node'] = 1;
/* Sort criterion: Содержимое: Nid */
$handler->display->display_options['sorts']['nid']['id'] = 'nid';
$handler->display->display_options['sorts']['nid']['table'] = 'node';
$handler->display->display_options['sorts']['nid']['field'] = 'nid';
/* Contextual filter: Таксономия: ID термина */
$handler->display->display_options['arguments']['tid']['id'] = 'tid';
$handler->display->display_options['arguments']['tid']['table'] = 'taxonomy_index';
$handler->display->display_options['arguments']['tid']['field'] = 'tid';
$handler->display->display_options['arguments']['tid']['default_action'] = 'default';
$handler->display->display_options['arguments']['tid']['default_argument_type'] = 'taxonomy_tid';
$handler->display->display_options['arguments']['tid']['default_argument_options']['term_page'] = 0;
$handler->display->display_options['arguments']['tid']['default_argument_options']['node'] = 1;
$handler->display->display_options['arguments']['tid']['default_argument_options']['limit'] = 0;
$handler->display->display_options['arguments']['tid']['default_argument_options']['vocabularies'] = array(
'bookcats' => 'bookcats',
'_news' => '_news',
'_pubs' => '_pubs',
'article' => 'article',
);
$handler->display->display_options['arguments']['tid']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['tid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['tid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['tid']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['tid']['break_phrase'] = 0;
$handler->display->display_options['arguments']['tid']['add_table'] = 0;
$handler->display->display_options['arguments']['tid']['require_value'] = 0;
$handler->display->display_options['arguments']['tid']['reduce_duplicates'] = 0;
$handler->display->display_options['arguments']['tid']['set_breadcrumb'] = 0;
/* Contextual filter: Содержимое: Nid */
$handler->display->display_options['arguments']['nid']['id'] = 'nid';
$handler->display->display_options['arguments']['nid']['table'] = 'node';
$handler->display->display_options['arguments']['nid']['field'] = 'nid';
$handler->display->display_options['arguments']['nid']['default_action'] = 'default';
$handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node';
$handler->display->display_options['arguments']['nid']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['nid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['nid']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['nid']['break_phrase'] = 0;
$handler->display->display_options['arguments']['nid']['not'] = 1;
/* Filter criterion: Содержимое: Опубликовано */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 0;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Display: Block */
$handler = $view->new_display('block', 'Block', 'block');
$translatables['related'] = array(
t('Master'),
t('Похожие материалы'),
t('more'),
t('Apply'),
t('Сбросить'),
t('Sort by'),
t('Asc'),
t('Desc'),
t('Все'),
t('Block'),
);
хм. Первый вид, при вставке в блок выдало ошибку
Fatal error: Call to undefined function taxonomy_node_get_terms() in /сайт /modules/php/php.module(75) : eval()'d code on line 6
Попробую второй вариант
Второй код не импортируется
Поле handler field_data_field_info.field_info is not available.
Contextual filter handler field_data_field_festivalglobal.field_festivalglobal_tid is not available.
Filter criterion handler field_data_field_date.field_date_value is not available.
А нет. Это у меня глюк. Выводил блок для 6-ки сделанный