Дублирую статью со своего Блога Ежа.
Есть такой замечательный модуль Workflow-NG, с его помощью можно например автоматизировать обработку заказов и работу с покупателями в Уберкарте.
Итак, модуль Workflow-NG. Как следует из самого названия с его помощью можно организовать работу с некими рабочими процессами (workflows). Что пишут о возможностях модуля в официальной документации? Итак, с помощью этого модуля Вы можете: организовать уведомления посетителей Вашего сайта о каких-либо важных изменениях или дополнениях, появляющихся на Вашем сайте; организовывать гибкую систему процесса отображения материалов; организовывать специальные редиректы (перенаправления) и многое другое. Отлично. Но я хочу для начала попробовать сделать с помощью этого модуля хоть что-нибудь конкретное.
Итак, захожу в Управление сайтом > Конструкция > Workflow-ng (admin/build/workflow-ng). По умолчанию там уже есть несколько созданных настроек, но я конечно же хочу добавить свою собственную, поэтому жмякаю на ссылке Add a new configuration (Создать новую настройку). Вижу два обязательных к заполнению поля - Event (Событие) и Label (Метка). Как нетрудно догадаться, Event это и есть то самое событие, в ответ на которое я смогу организовать какое-либо ответное действие. Например, я хочу, чтобы пользователь немедленно получал уведомление о появившейся записи в блоге, или о добавлении новой новости и так далее (я сейчас умышленно не касаюсь Уберкарта). Выбираю в поле Event в выпадающем списке какое-либо событие - выбрал Content has been created (Новый материал был создан). В поле Label нужно написать какое либо название для создаваемой настройки. После этого поля идёт метка, в которой по умолчанию установлен флажок. Не убирайте этот флажок, если Вы хотите, чтобы Ваша настройка была активной (если флажок не будет установлен, настройка будет неактивной, и в ответ на событие не будет выполняться никакого действия).
Итак, сохраняю изменения. Далее ещё две настройки - Conditions (Состояния) и Actions (Действия). Как нетрудно догадаться, Actions - это и есть те самые действия, которые я буду выполнять в ответ на какое либо событие. Но сначала нужно дойти до соответствующей кондиции, поэтому кликаю на Add a condition (Добавить состояние). В выпадающем окошке можно выбрать что угодно на вкус, но я выбираю Content has type (то есть фильтрую появление какого либо контента по его типу), кликаю Add (Добавить), ниже выбираю например Запись в блоге. После этого сохраняю изменения.
Теперь перехожу к Actions. Точно так же добавляю какое-либо действие, выбираю какое именно действие мне нужно, я выбрал Send a mail to an arbitrary mail address (Доставка сообщения на мыло случайного пользователя), но Вы можете экспериментировать с какими угодно другими действиями. Я для проверки ввёл свой собственный адрес почты. Ниже Вы можете написать текст сообщения, которое будет приходить на почту Вашей "жертвы".
Всё. Сохраняю изменения. Теперь я могу увидеть свою настройку в списке других настроек Workflow-ng. Проверяю работу нашего модуля. Создаю любую запись в блоге, жму "Отправить". Заранее приготовившись к неудаче, проверяю свой почтовый ящик. Но нет!! Надо же - на почту пришло письмо, уведомляющее о том, что на сайте появилась новая запись в блоге!
Модуль работает!
Комментарии
Что-то я не заметил модуля Workflow-NG для Drupal 6.*, как указано в шапке вашей статьи.
для 6ки есть Rules
То есть Workflow-NG и Rules - уведомители пользователей о новых типах материалов? Если пользователь, скажем, создал материал типа Story (и только его) может на указанный ящик Workflow-NG и Rules прислать текст материала?
А что еще ими можно делать? (особенно Rules)
В описании написано:
• send customized mails to notify your users about important changes
• build flexible content publishing workflows
• create custom redirections, system messages, breadcrumbs, ..
• and a lot more....
Что означает второй пункт, что за редиректы и особенно a lot more?
Верно, для шестёрки нету Workflow-NG, я просто жмякнул не на ту кнопочку
уже исправил на 5.x
Workflow-NG далеко не просто уведомитель о новых типах материалов, это только вводная статья, там есть очень много вариантов развития событий, Вы покликайте в настройках этого модуля - их там очень много. Я просто написал один из примеров, как можно работать с этим модулем.
как сказал Leonard, не просто уведомитель там просто кучу всего можно сделать)
у меня напимер через Rules сделана такая штука: на главной 5 материалов закреплённых и еще 10 обычных, дак вот при добавлении нового закреплённого материала самый старый из закреплённых убирается с главной и становится обычным
А можете написать, что им можно сделать?
В частности, можно материал story чтобы сразу после создания отправлялся на указанный e-mail? Ну и еще возможности... В общем.
да можно
- можно чтобы после входа пользователя редиректило куда-нибудь
- можно при создании чего либо отправлять письма определенным ролям
- можно при создании чего либо выполнять свой пхп код
- можно создавать условия
- можно выводить пользователям при создании материала кастомные сообщения
и тд и тп
Спасибо. Только есть возможность письма не ролям а на ящик?
И что за условия?
События и действия могут быть разные в зависимости от установленных модулей поддерживающих rules, у меня доступно следущее:
События
Comment
Node
Organic groups
System
User
Действия
Comment
Node
Organic groups
PHP
Path
Rule Scheduler
Rule Sets
Rules
System
User
условия это вобщем проверка, поддерживает логические операции
например при создании новости автором с ролью "супер пользователь" делать её прикреплённой
в данном случае в роли условия будет то что у пользователя есть роль "супер пользователь"
с программной точки зрения Workflow-NG и Rules это модули конструкторы реализующие друпаловские хуки hook_nodeapi, hook_user и тд. Также как и cck с views заменяют программное создание своих типов нод и представлений.
Спасибо! познавательно.
спасибо, полезно