Валидация форм с помощью Rules

Часто возникает необходимость проверить на соответствие каким-то условиям ту или иную форму перед сохранением материала.
Или нужно проверить количество материалов созданных пользователем.
Ну или еще что-нибудь - сравнить дни недели, найти искомые слова, проверить "друзей" пользователя, посчитать Userpoint'ы...
В общем нужна валидация формы.
Ниже рассмотрим пример, с помощью которого это можно будет реализовать на правилах.
Шаг 1. Подключение и настройка модуля
Во всем этом не легком деле нам поможет модуль Rules Forms Support. Его нужно установить и включить.
После включения нужно настроить модуль для нужных нам форм. Для этого перейдем по следующему пути: Управление » Конфигурация » Процесс » Правила » Вкладка "FORMS SUPPORT" ("admin/config/workflow/rules/forms").
И включаем отображение сообщений в формах:
После этого можно будет активировать поддержку форм для любой формы на сайте. Активируем только для нужной нам - страницы добавления статьи.
Перейдем на страницу создания нашего материала, в этом случае "node/add/article".
И увидим вверху сообщение позволяющее активировать эту форму для правил.
Давайте её активируем - нажимаем на ссылку в сообщении. Попадаем на страницу настройки события, где можно указать название события (я поставлю "Форма создания статьи") и добавить события валидации на все кнопки в форме. Сохраняем настройки.
Теперь наша форма будет доступна в настройках правил.
Для данного примера нам хватит одной этой формы, потому я сразу отключу показ сообщений. Чтоб не мешали. Сделать это можно на той же странице где мы её включили ("admin/config/workflow/rules/forms").
Шаг 2. Работа с правилами
Вкратце покажу что нам дала активация формы для правил:
Во первых. Стали доступны события по нашей форме, среди которых есть всевозможные значения как самой формы, так и каждой кнопки присутствующей в форме (закачать изображение/файл, сохранить ноду, предпросмотр, удаление...). Доступны события нажатия на кнопку, отправка данных, валидация.

В общем все чего душа пожелает...
Во вторых. Добавились условия для проверки элементов формы:

Ну и в третьих. Новые действия, их тоже целая куча, и среди них есть такие, как например изменение веса виджета, отключение или скрытие элемента формы, вывод HTML и ошибок в элементе формы или на экран и т.п.

Шаг 3. Создание простого правила
Перейдем к созданию правила.
Создадим самое простое правило, запрещающее публиковать статью пользователям с определенной ролью. Правило будет выводить сообщение и перенаправлять пользователя на главную, вместо сохранения материала.
Создаем новое правило на странице правил ("admin/config/workflow/rules").
В качестве события выбираем "Форма создания статьи is being built", тобишь при загрузке страницы создания статьи.

В условиях добавим проверку пользователя на его роли. В данном примере я выберу не авторизированного пользователя.
Добавим действие, в котором перенаправим несостоявшегося автора на главную страницу сайта.
А также сообщим его что сегодня не его день...
Готово. Вот на всякий случай скрин правила.
Теперь анонимные пользователи будут перенаправляться на главную при попытке создать статью.
Делитесь полезными материалами в социальных сетях.