Rules. Обзор, примеры, API.

Post on 20-Jun-2015

1.551 views 0 download

Tags:

Transcript of Rules. Обзор, примеры, API.

1

RulesOverview, use cases,

APIArtem Berdishev

skype: berdishevberdart@amgrade.com

What is Rules?

• This is module for developers, not for users

• The main goal – replace a lot of custom code by some configurations in UI

• Interaction between different modules

3

What is Rules?

• Widely uses Token and Entity Token modules

• Consists from 3 main items: action, condition, reaction

• Part of rules can be stored and used as components

• Loops & Lists• Has nice debug option

4

Rule architecture

• Events – system event(s) to which one(s) rule will react

• Conditions

• Actions

5

Rule architecture

• Events

• Conditions – in which cases it should react?

• Actions

6

Rule architecture

• Events

• Conditions

• Actions – what should happen?

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)

8

Useful modules

• Rules links• Flag• Views Bulk Operations• Message• Rules Bonus Pack• Content access• Relation• …..

9

Some small examples

10

• 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

11

12

RULES DEMORULES DEMO

13

• Make use of tags• Use components to organize your

rules• Export your rules to feature modules

using Features• Keep your rules simple• Write descriptions for your rules

14

RULESRULES APIAPI

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

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;

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.

18

Rules API

• hook_rules_data_info()• hook_rules_plugin_info()• hook_rules_evaluator_info()• hook_rules_data_processor_info()• hook_rules_[action|event|

…]_info_alter()• hook_default_rules_configuration()• …..

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

20

Question?

Artem Berdishevskype: berdishev

berdart@amgrade.com

22