Reactive rules for drupal have grown-up!

Submitted by fago on Mon, 05/18/2009 - 15:12
Finally, after over 1 year of development the rules module has reached the 1.0 version! You can download it from the project page. Reactive rules? Reactive rules (or ECA-rules) are rules triggered upon a given event. This allows one to conditionally fire actions based on arbitrary events. As modules can provide further conditions, actions and events this enables site builders to automate a lot of things using reactive rules! As of now a lot of popular drupal modules provide already rules integration: CCK, Organic Groups, Token, Flag, Content Profile, Content Access, ViewsBulkOperations and many more. Features? The modules comes with a bunch of useful features, e.g. a flexible input evaluation system that allows to use token replacements or even PHP evaluation in your rules. To ease the management of rules the module supports tagging of rules as well as Import/Export. Often used behaviour can be put into Rule-Sets and is easily invoked by provided actions. Not enough, the execution of those Rule-Sets can be scheduled easily with help of the provided action, thus providing a powerful scheduling system, which allows you to schedule arbitrary tasks! screenshotIt's finally grown-up? Rules is already stable for quite a time, however I didn't consider it to be complete. During the last months I added missing important features, fixed bugs and translation issues and completed the documentation! While there was quite a bunch of useful developer documentation for a while, now there is also a complete hook reference in the doxygen format. So it's grown up, but it's not (yet) perfect. So what comes next? Google Summer of Code and the Rules' Monkey I'm really happy to announce, that rules SoC project proposed by klausi has been accepted! The project is called Rules Module extension und perfection (a.k.a. Rules monkey) and deals with some exciting and important stuff I had never time for. He's going to build a simpletest framework around rules, so it's easy for modules to test their rules integration! Then he's going to take an eye on improving usability and performance. Note that the rules module is written with performance in mind, however as always there is room for improvements. In particular for "forms support", which klausi is also to going to build, rocking performance is a must have! Bringing rules to the next level? Apart from that, I'm already working on bringing drupal rules to the next level: I've already started working on my master thesis at the Vienna University of Technology dealing with rules. First off I plan the refactor the module's core engine to get the new features in while keeping the code simple. Probably I'll rework the engine to work object-oriented while keeping the basic-API stable. So I plan to better modularize the engine itself, add support for using conditions and actions on their own and to integrate planned features like the concept of data lists and looping support. Apart from that I'm working towards making drupal rules real web-rules. Through web-service integration the rule-based invocation and generation allows easy integration with remote services. However more important, to reach real interoperability I think about adding RDF support thus providing a way to actually read and work with remote data. For this I've noted some use cases I'm going to consider during development - if you can think of more great opportunities this might enable, drop me a line!

Matt Petrowsky (not verified)

Tue, 05/19/2009 - 10:19

Wolfgang, the work you've done on Rules is absolutely awesome. With your API and the integration by many popular modules, I'm rooting for Rules to become the de facto for all Drupal automation. While Workflows/Triggers/Actions started out with the right idea (by a great developer no less), its confusing use of terminology* and implementation is less than ideal. You've got a great start on Rules, and, in regards to automation, I hope it becomes what Views is to the display of data. Go Rules! P.S. If you haven't seen it yet, I did a video about Drupal automation on * Here's what I mean by confusing... "Do I want to trigger a workflow or action? Do I have actions in workflows that are triggered, or do I trigger a workflow to cause an action? Are actions triggered or do I setup a trigger for an action?" - and, yes I do actually know how it all works, but standardizing on a simple terminology is the stability that newer users seek to find. Thanks for all your hard work!

fago (not verified)

Tue, 05/19/2009 - 12:40

In reply to by Matt Petrowsky (not verified)

I have seen your video, it's a great introduction - thanks! I linked it from the rules documentation, so new users can find it. Also rules 1.0 already incorporates the two UI fixes you suggested in the video! @terminology: I agree that consistent use of terminology is really important, so it's easier for users to get into it.

Rodriguez (not verified)

Sun, 01/10/2010 - 20:48

Wow this looks great. It opens up so many new possibilities as well as making things easier to manage. It's also great to see you took the time to make it stable rather than rushing the development. I think RDF support would be a great idea, there's a lot of content syndication and it makes it a lot easier. I'm sure other ideas will come as it sees use. Cheers -R Inner Game | Seduction Community.