Проблема с правилами и Userpoints

10.03.2015

Я новичек, так что сильно не бейте :)
Задача:
при установке флага на материал за него снимаются userpoints юзера.
Как только флаг установлен, ежедневно необходимо снимать определенное кол-во userpoints, а по истечению userpoints у юзера снимать флаг обратно.
Проблема следующая:
Как такое действие реализовать?

Я уже как только не пробовал. Запутался, нарубил дров... Хотел использовать просто Userpoints Evaporation, но как evaporation заставить работать в зависимости от флага не знаю.
Потом начитался аналогичных тем и где-то увидел про решение через CRON. Как только создаю правило на событие при запуске cron, то никак не получается настроить снятие userpoints.
Вот последний вариант, который мало-мальски работает:
Тут один нюанс. Как только создается планирование, оно работает только один раз или после запуска cron удаляется.
Уже голову сломал..

Правило:
{ "rules__20_for_prior" : {
"LABEL" : "-20 for PRIOR",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "flag", "rules", "userpoints_rules", "rules_scheduler" ],
"ON" : { "flag_flagged_priority_set" : [] },
"IF" : [
{ "flag_flagged_node" : {
"flag" : "priority_set",
"node" : [ "flagged-node" ],
"flagging_user" : [ "flagging_user" ]
}
}
],
"DO" : [
{ "userpoints_action_grant_points" : {
"user" : [ "flagging-user" ],
"points" : "-20",
"tid" : "0",
"entity" : [ "" ],
"operation" : "\u041e\u043f\u043b\u0430\u0442\u0430",
"display" : "1",
"moderate" : "approved"
}
},
{ "schedule" : {
"component" : "rules_pay_fot_anket",
"date" : "now +1day",
"param_node" : [ "flagged-node" ]
}
}
]
}
}

и сам компонент:
{ "rules_pay_fot_anket" : {
"LABEL" : "pay fot anket",
"PLUGIN" : "action set",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "userpoints_rules", "rules_scheduler" ],
"USES VARIABLES" : { "node" : { "label" : "node", "type" : "node" } },
"ACTION SET" : [
{ "LOOP" : {
"USING" : { "list" : [ "node:author:flag-city-global-flagged" ] },
"ITEM" : { "toloop" : "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430" },
"DO" : [
{ "userpoints_action_grant_points" : {
"user" : [ "node:author" ],
"points" : "-40",
"tid" : "0",
"entity" : [ "" ],
"operation" : "everyday -40 \u0437\u0430 [node:title]",
"display" : "1",
"moderate" : "approved",
"expirydate" : "00:00:00"
}
},
{ "schedule" : {
"component" : "rules_pay_fot_anket",
"date" : "+1 day",
"param_node" : [ "node" ]
}
}
]
}
}
]
}
}

-->
Узнавай о новых статьях сайта - первым. Просто подпишись на рассылку.