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