Views рейтинг модуль. Существует такое или как сделать???

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

Аватар пользователя iNFerNo iNFerNo 19 августа 2013 в 15:03

Собственно нужно оценивать (разные виджеты - 5 звзед, +1, +1 -1 и тд) между собой ноды участвующие в списке вьюх.

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

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

Реализуемо ли такое?

Комментарии

Аватар пользователя graker graker 19 августа 2013 в 17:47

Если voting field в файвстаре не плющит от нескольких полей, то два варианта:

1) Если количество разных рейтингов известно заранее/добавляется редко - то добавлять нодам каждый раз по дополнительному вотинг-полю и в соответствующей вьюхе выводить только нужное поле.

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

Аватар пользователя iNFerNo iNFerNo 20 августа 2013 в 8:34

В том то и дело что мы не знаем какая будет сборка вьюхи, на 10 позиций или на 20 седня хочу во вьюхе ретинг на 10 строк а завтра на 15 и соответственно еще + 5 прибавиться к 10 и эти новые ноды должны включиться автоматом в рейтинг уже...

--

Я себе представлял так реализацию... (реально ли она).

На странице настройки самописного модуля таблица/список всех вьюх созданных, если в конкретной вьюхе нужно включить оценочный рейтинг для нод/терминов то просто включаем его у каждой вьюхи. И пересохраняем страницу.

И тогда потом во вьюхе можно добавить еще поле с ретингом с выбором виджета.

Аватар пользователя graker graker 20 августа 2013 в 9:51

iNFerNo wrote:
Я себе представлял так реализацию... (реально ли она).

На странице настройки самописного модуля таблица/список всех вьюх созданных, если в конкретной вьюхе нужно включить оценочный рейтинг для нод/терминов то просто включаем его у каждой вьюхи. И пересохраняем страницу.

И тогда потом во вьюхе можно добавить еще поле с ретингом с выбором виджета.


Если делать грамотно и без костылей, то это, я думаю, должно выглядеть примерно (примерно) так:
1) Создаем новую сущность "рейтинг".
2) Создаем поле референса на эту сущность. В нагрузку каждому добавляемому полю референса программно прикручиваем к ноде voting field.
3) Создаем одну (!) вьюху, которую руками выводим на странице сущности, фильтруя по контексту, чтобы показывались только ноды со ссылкой на сущность.

Или так (наверно, так даже лучше):
1) Создаем новую сущность "рейтинг".
2) Создаем в сущности "рейтинг" поле референса на ноды, чтобы добавлять ноды в рейтинг.
3) Создаем ровно одну вьюху, которую выводим на странице любой сущности-рейтинга; во вьюхе выводим только ноды, добавленные в рейтинг.
4) При создании новой сущности-рейтинга, автоматически создаем новый инстанс voting-поля и программно прикручиваем к нужным типам материалов. При удалении рейтинга, соответственно, удаляем.
5) На странице ноды нужного типа выводим только voting-поля от рейтингов, к которым действительно прикручена нода (возможно надо хранить бэкреференс).
6) Ну и наверно придется отдельно в БД хранить связь между id рейтинга и инстансами voting-полей, чтобы знать, какие поля на каких рейтингах показывать.
7) Как вариант, можно попробовать не создавать инстансы вотинг-полей, а создать один множественный инстанс и сохранять связь delta<->entity id. Но я не помню, поддерживает ли вотинг-филд множественные поля.

Аватар пользователя iNFerNo iNFerNo 20 августа 2013 в 13:34

А если 1000 нод уже есть, то в них замучаешься добавлять связку к сущности - рейтинг же...

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

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

Аватар пользователя iNFerNo iNFerNo 20 августа 2013 в 13:35

вопрос в том как каждо ноде узнать в каких втьюхах она учавствует если вьюх на друпале сайте тоже тыщииииииииииии

Аватар пользователя graker graker 20 августа 2013 в 15:07

Все эти подробности - песни, альбомы - говорят о том, что надо сначала рассказывать полностью о задаче, и лишь потом искать решение Smile

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

iNFerNo wrote:
вопрос в том как каждо ноде узнать в каких втьюхах она учавствует если вьюх на друпале сайте тоже тыщииииииииииии

Если все вьюхи-рейтинги создаются через референсы на альбомы и сборники, то узнать легко (через референс). Если же нет (например, "отрейтингуем все песни за 2013 год") - нужно делать примерно как я описал. Узнавать, в каких вьюхах отображается нода - страшные костыли.