Всем доброго времени суток. У меня возникла проблема. Никак не соображу как сделать, чтобы поинты юзера каждый день уменьшались на некоторое количество. Например как в jino.ru. Делаю как обычно: Rules->создать новое правило->выполнение регулярных задач cron-> Добавить action->grant point to a user, открывается следующий лист... и вот тут кажется где-то ошибаюсь. Что где прописывать, особенно в графе "Действия" не пойму. Если не сложно, подскажите пожалуйста.
Комментарии
/usr/bin/php -q /путь от корня до файла cron.php
то есть путь до интерпритатора /путь до cron.php
Это в графе "Действия" прописывать путь?
Да,
первая часть показывает запустить интерпритатор а вторая часть путь до файла который необходимо выполнить
чо за хрень? это строка запуска крон-задач.
Как же всё-таки сделать так, чтобы поинты списывались с юзера раз в день?
если через рулсы то там дохрена условностей и проверок нужно писать, так как крон дергается у кого-как (от 10 минут до раз "в месяц" ), проще сделать отдельный пхп-файл в него добавить стандартный drupal`овский bootstrap + один запрос для изменения поинтов, а далее это файл вызывать по крону с настройкой "раз в день", так будет быстрее и независимее.
В рулсах есть специальный модуль для этого — Rules Scheduler
естественно, только он не отменяет "дохрена условностей и проверок".
Дешевле для сервака не проверять запускалось или нет действие в этот день, а тупо запустить 1 раз в день по крону.
хотя с другой стороны, если писать руками не "ага" то друпал-стайлнее модулем.
А можно понятный пример привести на друпале? Я почему-то уверен, что эта тема многих интересует.
Спасибо Vladimir_VVV. Способ удобный. Только bootstrap не понадобился. Просто сделал в отдельном php файле запросы к базе те, которые нужны. А в системном хроне (не друпаловском) выставил команду на выполнение файла с периодичностью в 1 день.
а есть возможнсоть в рулесах запускать крон по определеному действию юзеров...
Создайте два компонента, на вкладке рядом с правилами:
1) Компонент, который делает всё то, что вам надо выполнять регулярно: уменьшить поинты всем юзерам, сделать рассылку, etc.
2) Компонент с действием "запланировать выполнение компонента". Запланировать нужно, ес-но, первый компонент. Если нужно каждый день, указать время выполнения "00:00:00", например. Формат функции strtotime, там в админке всё будет написано.
Если всё сделать правильно, второй компонент появится в расписании - admin/config/workflow/rules/schedule . Модуль Rules Scheduler должен быть включен. Ну и крон запускать почаще.
Попробуй "выполнить php-код"
а в код что прописать то?
Попробуй "drupal_cron_run();"