Использую Drupal 7, Rate, Rules и Userpoints для создания кармы пользователей. Карма (Userpoints) начисляется (Rules) из суммы рейтинга (Rate) всех его нод и комментариев. Все отлично работает.
Хочу сделать так, чтобы пользователи имели уровни (новичок, опытный и т.д. - это термины таксономии) исходя из накопленной кармы (баллов). Пытаюсь создать правило в Rules, по которому пользователям набравшим, например, больше 100 баллов кармы присваивается новый уровень. Но как не крутил, не могу найти условие проверки количества баллов у пользователя, которому начислили только что баллы. Data selector в условии VOTE RESULTS должен быть примерно такой userpoints-transaction:user:vote-results. Но никак ничего не выходит.
Решение в комментариях.
Комментарии
не понял - надо менять значение пола пользователя?
а на какое действие рулес?
Нужно сменить (поле "Ссылка на термин") термин на другой.
event какой ?
Если вы про событие. Ставлю на событие "User will be awarded баллы", но тогда в условии "evaluate the results of a vote" в Data selector нет нужных данных для проверки.
выбери условие - сравнение данных
Выбираю в условиях сравнение данных.
Data comparison
Parameter: Data to compare: [userpoints-transaction:points, Operator: is greater than, Data value: 200
Проверяю, тоесть клацаю по рейтингу нод автора, но у автора не меняется поле. (Если убрать условие то действие срабатывает).
А все потому что, сравниваю скорее всего не то. Нужно сравнивать же vote-resultats, но в сравнении данных его нет.
сделай в действии для отладки вывод сообщения userpoints-transaction:points и посмотри что там
Сделал, результат прикрепил файлом со скрином. Видно, что показывает 4 единицы, это по 2 балла идут на карму и рейтинг ноды (по 2 потому что уже нажимали на -1 и чтобы не было 0, когда человек передумает, плюсы обратно 2, короче это уже нюансы).
Вот и выходит, что userpoints-transaction:points выводит только текущий голос, а мне нужно Общую сумму баллов vote-results.
там где то должно быть и общее колво поинтов - пробуй другие токены
Сделал 1-ое действие, чтобы вытянуть loaded-points:
Load баллы of a user
Parameter: Пользователь: [userpoints-transaction:user], Баллы category: Рейтинг
Provides variables: Number of баллы in the specified category. (loaded_points)
И 2-ым действием вывел на экран:
Show a message on the site
Parameter: Сообщение: [loaded-points]
loaded-points выводит общее количество, тоесть сумму баллов пользователя, но как вытянуть loaded-points в условиях?
а после добавления в действия переменной с общим колвом в условиях не появляется эта переменная?
Нету. Только вот все перепроверил. Нигде нет.
а действие какое - добавление переменной ?если нет , то добавь переменную и туда впиши то что ты загрузил
Не понял куда что добавить.
в действиях выбери добавить переменную
Она не добавляется в переменные, и в списке ее тоже нет.
Нашел вот это https://drupal.org/node/874384 . Получается, что в условиях должен быть пункт Userpoints, но он есть только в событии и действиях, а в условиях его нет. Пробовал ставить DEV версию и ранние версии, но не помогло (хотя может быть надо было с полным удалением модуля, я просто отключал, заливал новый и устанавливал, боюсь стереть данные в базе о голосах). Вообщем по ходу модуль это либо еще что-то.
В коменте здесь https://drupal.org/node/874384 пишут, что есть патч, но я ни разу еще не ставил патчи, самое время попробовать. Не подскажет примерно как его ставить?
там можно так для д6 , для семерки надо патчить - а какая у тебя операционка?
я из терминала патчу ,но есть модуль https://drupal.org/project/patch_manager
На компе?) Windows 8.
вот файл с патчем
я помню что такое точно делал , но то была видимо шестерка и у меня юзеру добавлялась определенная роль , но разницы нету что менять - поле юзера или его роль
Спасибо, а то я вручную собирался патчить) Файлик заменил, появилось в условиях userpoints, надеюсь дальше вопросов не возникнет.
Все дело значит в модуле, нужен был маленький патч, чтобы появилось условие соответствующее, а я полдня убил на это дело. пишу РЕШЕНО.
только если будешь потом обновлять userpoints не забудь про этот файл пропатченный
да конечно
Работа по удаленному мониторингу охраняемых объектов. Наблюдение ведется через интернет по прямой видеосвязи. Обязанности - сообщать о проблемах на объектах согласно инструкции. График гибкий, 6 часов в сутки. Место жительства значения не имеет. 280 руб. в час. Пишите на email: webadm24serv@gmail.com
WebFamily,
«Использую Drupal 7, Rate, Rules и Userpoints для создания кармы пользователей. Карма (Userpoints) начисляется (Rules) из суммы рейтинга (Rate) всех его нод и комментариев. Все отлично работает.»
Если не затруднит, расскажи как настроил зачисление баллов пользователю (userpoint) за голосование ноды, комментов.
1. Установил модули Rate, Voting API, Rules, Voting Rules, Userpoints и Userpoints rules integration
2. Создал флаг, чтобы помечать ноды и комментарии, за которые голосовал пользователь
3. Создал 4 правила (скрины прикрепил в файле)
Первые два правила начисляют +1 или -1 балл за голосование к Userpoints, а также помечают или снимают флаг с ноды или комментария.
Третье и четвертое правило добавляет при повторном голосовании +1 или -1 балл (Например пользователь голосует +1, к карме добавляем +1 (первое правило), пользователь меняет свое решение и голосует -1, мы к карме добавляем -1 (первое правило) и еще -1 (второе правило), чтобы избежать 0, в итоге карма -1)
Спасибо за ответ и пример реализации, очень помог.
В моей задаче -1 не будет ,исключительно положительная карма. Значит ли это, что 2 правила rules отпадают?
Здравствуйте, можно подробнее по поводу флагов и категорий рейтингов.
1. На сколько я понял флагов нужно создать 2 штуки, плюс и минус?
2. По поводу категорий рейтинга, у вас в правилах несколько одинаковых действий: Grand балы пользователю и load балы пользователю, так вот там разные категории рейтингов: Рейтинг и Наплюсил, можете рассказать о том зачем разные категории?
Значит правила на вычитание кармы не будет. Но если пользователю дать возможность передумать и проголосовать повторно -1, то одно правило на вычитание должно быть.