Mittels Rules lassen sich herrliche Dinge machen. Es sind kaum Grenzen gesetzt, was Workflows und solche Sachen angeht. Mit Klicken kommt man schon ziemlich weit. Manchmal kann es aber notwendig sein, dass man eigene Actions für die Rules bereitstellt. Klaro, man kann praktisch alles mit eingebettetem PHP Code machen, aber das ist nicht wirklich eine glamurose Lösung. Hier ein kleines Beispiel:
<!–?php
/**
- implementation of hook_rules_action_info()
*/
function fast_gallery_rules_action_info() {
return array(
'fast_gallery_flush_caches' => array(
'label' => t('Flush Fast Gallery Cache'),
'module' => 'Fast Gallery',
),
);
}
?>
Mit dem hook_rules_action_info sage ich dem Rules Modules, dass wir eine Action anbieten. fast_gallery_flush_caches ist die Callbackfunktion, welche aufgerufen wird, wenn die Action ausgeführt wird. Das Label ist der Text, welche im Dropdown aufgelistet wird.
Folgendes Szenario wäre jetzt denkbar. Ich habe irgend eine spezielle Funktion. Ich möchte, dass jedesmal, wenn diese Aktion aufgerufen wird, der Fast Gallery Cache geleert wird. Ganz einfach: Einfach eine Rules mit dem entsprechenden Trigger machen und dann diese Action hinzufügen. Und schon klappt es wunderbar.
Ich werde auf jeden Fall bei meinen zukünftigen Modulen immer schauen, dass solche Integrationen vorhanden sind. Features, Rules und Co. sind schon sehr hilfreich und je mehr Modulmaintainer Integrationen mit diesen Modulen haben, desto flexibler wird Drupal.