Ежемесячное действие в Cron через rules

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

Аватар пользователя maksbaks maksbaks 29 декабря 2014 в 4:00

Доброго времени суток.
Прошу помощи в направлении по созданию правила, что бы ежемесячно 1-го числа всем пользователям добавлялся одноразовый +1 к числовому полю.
Вроде задача не сложная, но что то не могу въехать как сделать именно что бы один раз первого числа автоматически добавился +1 к числовому полю.

Буду благодарен за любые подсказки!

Комментарии

Аватар пользователя yaro yaro 29 декабря 2014 в 6:15

Сделайте это лучше как батч с запросом в базу данных, намного легче выйдет (по ресурсам)

Выглядеть запрос будет как-то так:

<?php
$data 
db_query('UPDATE field_data_field_my_field SET field_my_field_value = field_my_field_value + 1 LIMIT 250 WHERE bundle = "user"')->execute();
$revision db_query('UPDATE field_revision_field_my_field SET field_my_revision_value = field_my_field_value + 1 LIMIT 250 bundle = "user"')->execute();
?>
Аватар пользователя bumble bumble 29 декабря 2014 в 16:39

Вариант 1:
Со включенным планировщиком (Rules Scheduler):

Компонент с переменной "User"

  • Action - Вычислить значение ([field] + 1);
  • Action - Установить значение ([field] = [result]);
  • Action - Запланировать выполнение компонента [Компонент с переменной "User"], планируемая дата "now + 1month".

Правило

  • Trigger - Создание пользователя
  • Action - Запланировать выполнение компонента [Компонент с переменной "User"], планируемая дата "now + 1month".

Вариант 2:
C модулем Conditional Rules

Представление
Список пользователей с VBO

Правило

  • Trigger - Запуск Cron
  • Condition - Проверяем какое сегодня число, первое ли;
  • Action - Загрузить список ID сущностей из VBO Views [Список пользователей с VBO];
  • Add loop
  • - Action - Извлечь сущьность по ID [list_item];
  • - - Condition - "Тип сущности [entity_fetched]" - "Пользователь"
  • - - - Action - Вычислить значение ([field] + 1);
  • - - - Action - Установить значение ([field] = [result]);

З.Ы. Рай кнопкодава - Ад программиста ©