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

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

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

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

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

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

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

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

Комментарии

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

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

20 ноября 2011 в 1:42

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

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

20 ноября 2011 в 2:48

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

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

20 ноября 2011 в 3:06

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

20 ноября 2011 в 3:08

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

20 ноября 2011 в 3:11

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

не вариант)

20 ноября 2011 в 3:12

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

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

20 ноября 2011 в 3:19

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

20 ноября 2011 в 3:26

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

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

20 ноября 2011 в 3:25

"drupby" wrote:

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

20 ноября 2011 в 3:26

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

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

20 ноября 2011 в 3:29

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

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

20 ноября 2011 в 3:32

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

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

20 ноября 2011 в 3:34

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

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

20 ноября 2011 в 3:35

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

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

20 ноября 2011 в 3:41

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

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

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

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

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

20 ноября 2011 в 15:06

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

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

20 ноября 2011 в 15:42

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

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

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

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

20 ноября 2011 в 18:26