Доработал модуль User Points Voting API

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

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 28 марта 2009 в 18:39

Есть такой модуль, User Points Voting API. Он позволяет давать очки за оценку материалов голосующему.
Мне такой подход немного не понравился, т.к. давать очки за действия конечно неплохо, но еще лучше поощрять автора. Немного покопавшить на страницах, посвященных модулю (конкретно тут http://drupal.org/node/317585)и чуток дописав его я получил следующий функционал:
Очки по умолчанию начисляются автору. Причем, если ноде была поставлена отрицательная оценка, то очки у автора отнимаются.
Если выбрано, то добавляются очки и голосующему. Всегда положительные, независимо от оценки ноды.
Отмена голосов ведет за собой потерю набранных очков и у автора, и у голосующего. Если было произведено переголосование, то очки, соответственно, считаются верно. (Например, я проголосовал за ноду, и у нее стало +1. Если я отменяю свой голос - то у ноды 0, если же я переголосовал, поставив ноде минус, то у нее -1. Соответственно и с очками пользователей.)
Модуль приложен к сообщению. Сейчас я его активно тестирую, если все будет нормально - то отправлю патч автору, там подобное предложение проскакивало.

ВложениеРазмер
Иконка пакета userpoints_votingapi_voter_and_author.zip9.04 КБ

Комментарии

Аватар пользователя stolz stolz 6 мая 2009 в 0:28

Скачал его и установил, но вот какая странность. Очки прибавляются только проголосовавшему, а не автору ноды. Или может я чего не разобрался. Подскажите

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 6 мая 2009 в 1:24

Галочки все верно проставили? Там разграничено - автору и/или голосующему. Я его сейчас дописываю, чтобы можно было за разные типы контента разные группы очков, так что если действительно ошибка - то и исправлю.

Аватар пользователя jason32 jason32 8 мая 2009 в 14:21

вообще то непонятно, зачем в одной куче мешать две совершенно разные задачи. Отдельная задача - давать за активность, отдельная задача - давать за материал, под вторую задачу модулей хватает, что непонятно, зачем поганить один из редких модулей, что заточены под первую. Можете сказать, зачем это всё надо?

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 8 мая 2009 в 17:22

Там раздельно, сколько очков кому. Два инпута. Кеш сбрасывали?
Points for node author:
How many points node author earn or lose.
Points for node voter:
Users get points as they vote for node. Only positive, not negative.
Add points to voter
Add user points to voter.

Под вторую задачу модули назовите, пожалуйста. А мне интеграция нужна.

Зачем надо? Такова постановка задачи. Я ничего не поганил, это аддон. Никуда в Userpoints я не лез, он великолепен. Не то, что OG.

Аватар пользователя kirbaranov kirbaranov 13 августа 2009 в 20:17

Спасибо, очень полезный модуль (по крайней мере мне). Но есть вопрос: можно разделить понятие ноды и комментария? Если я все правильно сделал и ничего не напутал в настройках, сейчас он принимает все за одно - ноду. Т.е. если я ставлю плюс комментарию, автор комментария получает столько же очков, что и автор ноды, что, на мой взгляд, не совсем верно: создание материала сайта и комментарий "УхтыЁ!" - несколько разные вклады в развитие ресурса Smile А в идеале хотелось бы и разделить количество очков голосующего, чтобы за отметку комментария он получал меньше (в моем случае), чем за отметку материала - тут очевидно, комментариев обычно больше чем нод, на порядки, а значение для ресурса - часто (не всегда, но...) меньше. Таким образом было бы правильно на корню разделить движухи по материалам и движухи по комментариям. Их значение для сайта тогда можно будет определять - кому-то важнее ноды, кому-то - комментарии, если все поравну - ну обозначат одинаковые цифири...

Аватар пользователя Mr.Alinaki@drupal.org Mr.Alinaki@drup... 14 августа 2009 в 0:34

На нашем ресурсе (http://rupor.sampo.ru/) ноды и комментарии равнозначны по значению, ибо упор на "форумность", поэтому я этого не делал. Дорабатывать тут есть чего, может разберусь когда с текучкой прикручу и категории очков, и прочее. Но вообще мне Voting API не нравится большой нагрузкой на систему, впору писать заточенную под конкретные требования систему очков...

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

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