Приветствую всех!
Никак не могу разобраться как сделать одну фишку.
Есть некий набор из 14 нод, которые нужно непрерывно привязать к дате.
То есть, к примеру, сегодняшний день - первый. Завтра - второй и так далее до четырнадцатого. Есть поле для даты, где мы задаем начальные позиции.
Задаем "первый день" - "25.10.2016"
"второй день" - "26.10.2016"
...
"четырнадцатый день" - "7.11.2016"
Так вот, задача стоит так, чтобы эту дату менять на +14 дней после устаревания, то есть ноды должны идти непрерывным циклом. Например, когда настанет завтрашний день 25.10 мы должны через тот же рулез определить что дата истекла на ноде "первый день" и увеличить эту дату на 14, поставив в конец этого списка на 8.11.2016
Комментарии
Можете создать правило запускаемое, например, кроном, или вручную дергать...
В правиле циклом проходитесь по списку нод и проверяете.
Можно в компонент вынести, можно установить условные правила). Суть в том чтоб проверить дату и при истине выполнить действие.
![Rules date condition](/files/field/comment_node_blog/condition.png)
Проверку (condition) добавляете "Сравнение данных", в нем добираетесь до поля с датой, см. скрин:
Потом, соответственно, добавляете 14 дней, если условие выполнено.
Огромное спасибо за совет, попробовал воплотить, но возникла проблема - у меня нет в селекторе этого поля, пытаюсь разобраться почему...
У меня выбор только из site:
Не могу понять логику работы этого модуля как ему подсунуть нужное. Пытаюсь поставить условие по типу материала - тоже не выходит.
Я так понимаю, что модулю нечего анализировать, current-page для него ничего не значит, ведь на вход ничего не подано. В общем запутался я с этим модулем...
Если Вы редактируете компонент правил, а не правило (с реакцией на событие), Вам нужно добавить параметр ноды в настройках компонента, например:
После, в селекторе выбора будет доступен параметр ноды. Также, его (параметр ноды) нужно будет передавать при обращении к компоненту.
Я правило пытаюсь создать с запуском по крону
Какой-то замкнутый круг получается.
Пытаюсь создать условие с проверкой типа материала или "сущность имеет поле" - тоже не выходит, выводит ошибку что неприменимо
Что надо заполнить в первую очередь? Условие? Так не получается, потому как не определено что именно мы обрабатываем, я так думаю это хочет мне сказать модуль.
Для того чтоб обращаться к сущности (в данном случае к ноде), её сначала нужно загрузить.
При выполнении правила по крону - самому правилу не доступны ноды. Вы можете, например создать список нод, и, опять же, циклом пройтись по ним. Или загрузить одну ноду по NID (в действиях пункты "Извлечь сущность по ID/свойству"), и с ней произвести все действия.
Тут опять же - или создавать компонент с параметрами ноды, в нем настраивать все необходимые действия и вызывать этот компонент из правила отрабатывающего на крон с передачей параметров, или Rules conditional и в действиях относящихся к условному действию.
Посмотрите вот этот мануал, он Вам во многом должен помочь с пониманием Rules и пр. модулей.
Хороший мануал, но и тут засада![Sad](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/sad.gif)
У меня нет в выборе типа данных "материал"
Не правда! Смотрите ниже:
![node](/files/field/comment_node_blog/1_27.png)
У Вас он "Содержимое" называется.
Ага... вроде часть всё же вышло
Сделал через VBO выборку, выбираются только просроченные ноды. Цикл создал
В VBO воткнул еще вывод нужного поля, теперь он в выборе появился.
Вопрос как к этим данным прибавить 14 дней и сохранить. Через переменную?
Действие "Вычислить значение" (или аналоги):
![action](/files/field/comment_node_blog/action.png)
После выбора поля даты в качестве источника необходимо нажать "Перезагрузить форму" внизу правила, для изменения формата данных.
После, в селекторе данных (и в токенах) появится возможность выбрать результат. Его нужно установить в качестве значения поля даты - действие "Установить значение" (или аналог).
Ух! Огромное спасибо, наконец-то заработало!
Ох и навертели в этом модуле
На самом деле - модуль весьма и весьма прост.
Главное вникнуть в него - и сможете без проблем "творить чудеса", без единой строки кода.
И даже если позже захотите научится программировать - у Вас уже будут познания логики (как все работает), т.к. Rules это, по сути, GUI для всяческих программных штукенций.