This presentation was presented on DrupalForum 2012 in Zaporozhye (Ukraine). It is about module Rules for Drupal 7. It describe what is the goal of the module, some examples of use. Feature of the example you can find on drupal.org; http://drupal.org/sandbox/BerdArt/1434760
7. Components
• This is reusable part of rules
• Use them in creation rules
• Condition set (OR/AND), Action set,
Rules set
• Components’ evaluation can be
scheduled (module Rules Scheduler)
7
9. Some small examples
• On node creation/saving change URL alias
pathauto
• Notify admin (moderator, author) about
content posting notification
• Notify user (author) about new comments
for node comment_notify
• Custom breadcrumbs for node types
custom_breadcrumb
• …
9
10. Big example - Workflow
• Users can add content (status = waiting
for approval). It’s not published
• The notification will be sent to
administrator
• He could change status to Approved or
Declined (+ notification to the author)
• If Approved – author can
publish/unpublish content
10
11. Scheduled publishing
• Field for setting publishing (unpublishing)
date
• Components for (un-)publishing and
logging
• Rule for
– reaction on changing date field
– scheduling the component evaluation
Scheduler
11
13. Best practices
• Make use of tags
• Use components to organize your rules
• Export your rules to feature modules using
Features
• Keep your rules simple
13
15. Event API
• hook_rules_event_info()
– array keyed by event name;
– options: title, group, variables etc;
• rules_invoke_event()
– call this function with event name as
argument to trigger the event
– for example, in any hook function
15
16. Action API
• hook_rules_action_info()
– array – action name (prefixed with module name) as
key;
– options: label, group, parameter, provides, callbacks,
etc.
• Implement function [action_name]()
– function arguments match parameters + $settings;
– returns array of parameter or/and provides with their
name as key;
16
17. Condition API
• hook_rules_condition_info()
– array – condition name (prefixed by module name) as
key;
– options: label, parameters, group etc. (same as action)
• Implement function [condition_name]()
– function arguments match parameters + $settings;
– should return boolean value;
– can't provide variables;
– cannot save parameters.
17
19. Resources
• The Rules module page on d.o.
http://drupal.org/project/rules
• The Rules way of life (London 2011)
http://london2011.drupal.org/conference/sessions/rules-way-life
• Screencast by Johan Falk (Itangalo)
http://dev.nodeone.se/en/learn-the-rules-framework
• Demo sandbox on d.o.
http://drupal.org/sandbox/BerdArt/1434760
19