Сортировка похожих материалов в Views

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

Аватар пользователя Legat Legat 19 ноября 2011 в 23:24

Здравствуйте, уважаемые друпалеры.

Возник следующий вопрос.

Есть созданный блок views для вывода похожих материалов по терминами, как описано тут.

Проблема заключается в настройке сортировки выводимых похожих нод. То есть у меня на сайте прикреплено большое число нод к одному термину, из за этого с каждой ноды ссылки ведут только на последние добавленные материалы (либо на первые), зависит от настроек сортировки. Это проблема, так как в данном случае ни о каком перераспределении ссылочного веса говорить особо не приходится.

Хотелось бы. что б ссылки на похожие материалы выводились по такому принципу: например, есть node/150 и от нее ссылки вели на node/151,152,153,149,148 и так далее, но при этом исходя из термина ноды.

Надеюсь вопрос сформулирован ясно. Заранее спасибо за помощь.

Комментарии

Аватар пользователя drupby drupby 20 ноября 2011 в 1:42

"Legat" wrote:
есть node/150 и от нее ссылки вели на node/151,152,153,149,148 и так далее, но при этом исходя из термина ноды.

а если node/151,152,153,149,148 принадлежат к другим терминам ,тогда как выводить?

Аватар пользователя Legat Legat 20 ноября 2011 в 2:48

"drupby" wrote:
а если node/151,152,153,149,148 принадлежат к другим терминам ,тогда как выводить?

минуя их, оставляя только с термином. собственное сейчас и выводятся только с термином, вопрос в том как их отсортировать на следующие и предыдущие

Аватар пользователя Legat Legat 20 ноября 2011 в 3:06

"alex_shut" wrote:
А в чем смысл этого всего? типа тогда распределение ссылочной массы правильнее? Каким образом?

так как с каждой ноды на каждую ноду будет по н-ное число ссылок стоять, то пр теряться не будет. если с 1000, к примеру, нод стоят ссылки на 5, то весь пр отдается тем 5, а это не есть гуд. смысл тут в нормальной перелинковке, которая придется по нраву как людям, так и пс.

Аватар пользователя Legat Legat 20 ноября 2011 в 3:08

сортировка случайный образом не гуд... а с аргументами можете поподробней? мои изыскания в данной области результатов особых не дали Smile

Аватар пользователя alex_shut alex_shut 20 ноября 2011 в 3:11

тобишь ты хочешь равномерно распределить?
Поставь содержимое этого блока в нофолоу, и тогда ваще вес передаватся через эти линки не будет. Идеал)

Аватар пользователя Legat Legat 20 ноября 2011 в 3:12

"alex_shut" wrote:
тобишь ты хочешь равномерно распределить?
Поставь содержимое этого блока в нофолоу, и тогда ваще вес передаватся через эти линки не будет. Идеал)

не вариант)

Аватар пользователя Legat Legat 20 ноября 2011 в 3:19

"alex_shut" wrote:
почему не вариант? Ты не хочешь потерь, ты полностью перекрываешь им путь. Задача решена.

тогда смысл от таких "похожих материалов" теряется, можно их вообще сносить, а это не вариант. я хочу побед, а на потери плевать)

Аватар пользователя drupby drupby 20 ноября 2011 в 3:26

определи 5 нод наиболее релевантных заппросу=термину и пускай им вес передается
а если нужна рандомная перелинковка для равномерного распределения ,то рандомная сортировка
либо пересмотри термины в сторону увеличения их количества

Аватар пользователя Legat Legat 20 ноября 2011 в 3:25

"drupby" wrote:
определи 5 нод наиболее релевантных заппросу=термину и пускай им вес передается

нету среди ~1000 таких 5, каждая нода важна

Аватар пользователя alex_shut alex_shut 20 ноября 2011 в 3:26

"drupby" wrote:

да я чтот не могу понять цели ТС... новым нодам - не хочет. Нужно чтоб не терялось в принципе, но закрыть от индекса не вариант... Блин, чтот я не догоняю(

Аватар пользователя drupby drupby 20 ноября 2011 в 3:29

"Legat" wrote:
нету среди ~1000 таких 5, каждая нода важна

если есть к примеру 1000 статей про тигров ,то я думаю найдется только 5 статей про амурских тигров.
и в других тематиках также.

Аватар пользователя drupby drupby 20 ноября 2011 в 3:32

"alex_shut" wrote:
да я чтот не могу понять цели ТС... новым нодам - не хочет. Нужно чтоб не терялось в принципе,

если новым ,то и вес перейдет больший к новым ,а надо чтобы равномерная перелинковка была

Аватар пользователя Legat Legat 20 ноября 2011 в 3:34

"drupby" wrote:
если есть к примеру 1000 статей про тигров ,то я думаю найдется только 5 статей про амурских тигров.
и в других тематиках также.

это, к сожалению, отнюдь не решение поставленного изначально вопроса, увы Sad

Аватар пользователя drupby drupby 20 ноября 2011 в 3:35

"alex_shut" wrote:
Блин, чтот я не догоняю(

если есть 1000 нод одного термина и будут выводится ссылки по 5 новых ,то получается на 5 статей будут ссылаться 995 статей.

Аватар пользователя drupby drupby 20 ноября 2011 в 3:41

"Legat" wrote:
это, к сожалению, отнюдь не решение поставленного изначально вопроса, увы =(

в данном случае я вижу 3 решения :
1. сделать рандомную сортировку и получить равномерную перелинковку.
2.пересмотреть структуру сайта (термины,подтермины),хотя это надо было делать изначально ,но опять таки не зная тематики и конкретных задач может и не надо .
3.ждать ,пока кто-нибудь ответит как это сделать (с помощью аргументов ,я так понимаю)

Аватар пользователя Legat Legat 20 ноября 2011 в 3:45

"drupby" wrote:
в данном случае я вижу 3 решения :
1. сделать рандомную сортировку и получить равномерную перелинковку.
2.пересмотреть структуру сайта (термины,подтермины),хотя это надо было делать изначально ,но опять таки не зная тематики и конкретных задач может и не надо .
3.ждать ,пока кто-нибудь ответит как это сделать (с помощью аргументов ,я так понимаю)

первый вариант не поймут поисковики, так как каждый раз при обновлении страницы будут новые ссылки
второй слишком трудозатраный трудозатратный, так как нод на сайте дохрена
остается третий)

Аватар пользователя Dan Dan 20 ноября 2011 в 15:06

Во первых, как сказал alex_shut, у вас неправильно что-то с подбором материалов. Похожих должно быть единицы. Если их сотни, значит что-то не так.

Если решать задачу, озвученную ТС, то надо делать два списка по три, например, ноды. Сортировка по nid, фильтр в первом списке - nid должен быть больше, во втором - меньше. Всё просто.

Аватар пользователя drupby drupby 20 ноября 2011 в 15:42

"Dan" wrote:
Если решать задачу, озвученную ТС, то надо делать два списка по три, например, ноды. Сортировка по nid, фильтр в первом списке - nid должен быть больше, во втором - меньше. Всё просто.

насчет 2 списков согласен ,можно прикрепить attachmentом второй,а по поводу фильтров,то если фильтр статичный ,то там надо указывать конкретные значения nid меньше которых и больше которых нужно делать выборку (к примеру больше чем nid 50)-не подходит для решения задачи ,а если фильтр контекстный (аргумент),то как реализовать больше и меньше текущего значения?

Аватар пользователя drupby drupby 20 ноября 2011 в 17:39

"Dan" wrote:
Точно! Про то что в фильтрах нет текущей ноды я забыл. Тогда только со своим модулем, через hook_views_query_alter

так ведь в аргументах можно выбрать множественное значение и к примеру через php код в массив записать значения ближайших нод с данным термином ,а потом return implode('+',$nodeid_array);
только как выбрать именно ближайшие к ноде по nid именно с этим термином?
Если без учета термина ,то можно вывести $node->nid-1,$node->nid-2,
$node->nid-3

Аватар пользователя Dan Dan 20 ноября 2011 в 18:26

И сколько ближайших нод вы там будете писать? 10? 50? 100? 1000?
Решение сработает, но костыль же голимый )