«Похожие материалы» модулем и гибко

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

Аватар пользователя Химический Али Химический Али 13 марта 2009 в 11:34

Модуль 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

Комментарии

Аватар пользователя Владимир Ситников Владимир Ситников 13 марта 2009 в 19:48

Интересно, жаль нет большого сайта на котором можно было бы проверить качество подбора похожих материалов.
Но направление верное! Разные словари с разными весами терминов - это потенциальная гибкость и качество настройки...

Аватар пользователя PVasili PVasili 14 марта 2009 в 2:04
  • Associated Nodes. Можно делать несколько блоков с разными настройками. Не совсем понятно назначение "Taxonomy constraints"...
  • Relevant Content - куча блоков и 2 критерия тип материала и словарь
  • Similar Entries - только 1 блок, возможно исключить термины из списка
  • Related links - 3 блока и много различных критериев отбора

теперь как буридановский осел что выбирать Smile

Аватар пользователя iryston iryston 16 марта 2009 в 15:57

Associated Nodes. Пробовал, удобно но визуально страницы стали долго открываться. Видимо тяжелые запросы к базе идут.

Relevant Content - понравилось,
но лично мне больше подходит Similar By Terms, тоже можно делать несколько блоков с разными настройками. Выводит либо заголовки либо тизеры. Относительно шустрый модуль.

Similar Entries, Related links мне не подошли.

Аватар пользователя iskatel iskatel 3 апреля 2009 в 7:57

В блоке созданном Associated Nodes не отображается ссылка на открытую в данное время статью. В taxonomy quick find отображалась и ссылка на открытую статью. Как это можно исправить?

Аватар пользователя Tankha Tankha 21 мая 2009 в 12:27

Так и не понял как он работает. Создавал ассоциации но нигде кроме настроек модуля их не увидел. Информации не нашел. Удалил.

Аватар пользователя retuam retuam 1 июля 2009 в 21:30

А каким образом отсортировать выводимые модулем Associated Nodes заголовки нод, скажем по алфавиту, а не по номеру нид (по умолчанию)?

Аватар пользователя Legat Legat 14 мая 2011 в 17:58

разобрался, спасибо. только непонятно, как сделать так, чтобы отображались самые близкие в порядке добавления к текущей (просматриваемой) ноде ноды, так как сортировка по алфавиту и по дате не особо устраивает, помогите пожалуйста)

Аватар пользователя Legat Legat 16 мая 2011 в 3:08

contextual filters
а вот как вставить блок похожих материалов в node.tpl.php я не разобрался
прочитав эту статью и поэкспериментировав до хрена раз с приведенным там кодом у меня никак не получилось его вывести(.. может кто помочь?

Аватар пользователя Valeratal Valeratal 16 мая 2011 в 10:38

contextual filters
да, я уж разобрался, правда не выводит почему то

Можно попросить экспорт этого вида, у тех, у кого получилось?

что касается той инструкции, так это для вставки в шаблон, а не для вставки в ноду. Вставка в ноду это куда более большее количество кода.

Аватар пользователя TheJuneBug TheJuneBug 10 ноября 2015 в 11:47

Valeratal wrote:
contextual filters
да, я уж разобрался, правда не выводит почему то
Можно попросить экспорт этого вида, у тех, у кого получилось?

Вот ведь. Для меня это оказалась единственной инструкцией, которая заработала с первого раза )
Рабочий вид прикрепляю.

Ой, я опоздала, но пусть на всякий случай будет )

Аватар пользователя Legat Legat 16 мая 2011 в 11:25

Может кто поделится ссылкой на статью, где разбирается вставка вида в 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'),
);

Аватар пользователя Valeratal Valeratal 16 мая 2011 в 11:47

хм. Первый вид, при вставке в блок выдало ошибку
Fatal error: Call to undefined function taxonomy_node_get_terms() in /сайт /modules/php/php.module(75) : eval()'d code on line 6

Попробую второй вариант

Аватар пользователя Valeratal Valeratal 16 мая 2011 в 11:54

Второй код не импортируется

Поле handler field_data_field_groupyoung.field_groupyoung is not available.
Поле 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.