Я использую модули User Points, User Karma, Vote Up / Down. Интересно, есть ли способ, которым вы можете настроить его так, чтобы вычитать пользовательские баллы только тогда, когда вы голосуете что-то отрицательно, а не вверх.
Аналогично системе репутации Stack Exchange: если вы проголосуете за что-то, вы не будете пристыкованы, но если вы проголосуете за что-то, вы получите пристыкованные очки репутации.
Используя параметр «Репутация пользователя» -> «Очки кармы» -> «Стоимость очков избирателей», я могу настроить его так, чтобы он взимался только в том случае, если вы голосуете вообще, независимо от направления голосования. Любые идеи?
userpoints
rating
нельсон
источник
источник
Ответы:
Добавление модуля для переопределения настроек User Karma, безусловно, является одним из вариантов.
Другой возможностью является использование Rules и Voting_Rules для управления вашими собственными настройками для добавления и вычитания пользовательских баллов.
После включения вы идете в / admin / config / workflow / rules и «Добавить новое правило». Настройте его на React on Event "Пользователь голосует за узел".
Добавьте условие «Проверьте значение голоса» и, если значение меньше 0, добавьте действие к «Предоставлять баллы пользователю», но сделайте их отрицательными баллами.
Вот скриншот этого правила:
При желании, если вы хотите использовать пользовательскую карму совместно, вы можете вместо этого реагировать на событие «Очки пользователя были награждены» и проверять условия и отменять, где это необходимо.
источник
Для D7 я рекомендую использовать комбинацию этих альтернативных и часто используемых модулей для вычитания (или добавления) пользовательских баллов, когда за какой-то узел отказано (или такое понижение снова удаляется, что тоже может случиться ...):
Ниже приведены обязательные правила для каждого из этих случаев (используйте интерфейс правил, чтобы импортировать их на свой сайт после того, как вы включили необходимые модули, упомянутые выше). Предположения, сделанные в этих правилах:
article
(адаптируйте это имя, чтобы оно соответствовало имени вашего собственного компьютера, или пропустите это Условие правил, чтобы включить его для любого типа контента, за который можно голосовать).-1
".Понизить рейтинг узла
Приведенное ниже правило будет вычитать -2 (предоставить -2) пользовательских балла для понижения (автору узла) ... И также -1 пользовательское балл для избирателя:
Отмена понижения узла
Приведенное ниже правило предоставит +2 (= удалить -2) пользовательских балла за отмененное отрицательное голосование (автору узла) ... И также +1 пользовательское очко за избирателя:
Несмотря на то, что это может быть неочевидно при просмотре вышеупомянутых экспортированных правил, обратите внимание
description
,operation
иreference
используется в каждой из транзакций User Point.Используя такие правила, настройка суммы, взимаемой за положительные и отрицательные голоса, является всего лишь вопросом адаптации значений пользовательских точек, которые будут предоставлены (или удалены) с помощью пользовательского интерфейса правил.
Также обратите внимание
description
,operation
иreference
используется в каждой из транзакций User Points. Это также улучшит типичные отчеты по пользовательским баллам (с помощью различных деталей, добавленных в фактические транзакции с пользовательскими баллами).Используя модуль « Условные правила », вы также можете объединить эти правила в одно правило (что упрощает их обслуживание).
Домашнее задание : адаптируйте показанные выше правила, чтобы реализовать нечто похожее на вознаграждения в SE (= передать некоторое количество пользовательских баллов от одного пользователя другому).
PS: « если вы проголосуете за что-то, вы получаете пристыкованные очки репутации » (на SE) верно только для ответов, а не для вопросов. Чтобы уточнить это так, как вы хотели бы, это просто вопрос добавления соответствующего дополнительного условия правил (например, на основе типа контента so).
источник