During the last days I was really busy with things like work and studying. So I had no time for the workflow-ng port "rules" for some days. Furthermore I'm going for one week to Ireland, so I won't have time during the next week either. Anyway I plan to get back working on it as soon as I'm back from Ireland. I've already ported the API and overhauled it. I've added support for rule sets and improved things, so that the API is ready for further enhancements like generic scheduling and d6 actions integration. Furthermore I've written simple tests for the API, which will be a great help during further development. As it looks like the rules API improvements take already too much time, so I won't be able to spend as much time as I'd like on the UI of the rules module. So I'll start with a more basic UI leaving the planned ajax/ahah usability improvements open for later. However if you like to help me working on that, contact me!
Actually I'm wondering what the features are that people are missing most in workflow-ng? Currently I'm starting with the 6.x port of it, the rules engine. I'll utilize this opportunity to improve the system. So if you miss anything important, let me know now! I'd also like to know your wishes! As a start, here are mine:
- generic scheduling support
- verbose mode, so that admins can track the execution of rules
- support for sets of entities
- to work with them - support for looping over these sets
- based on that support loading arguments from views
- basic variable support (strings, ..)
I'm proud to finally announce the 2.0 release of workflow-ng. This brings a whole bunch of new features to you, e.g. now you can clone rule configurations, order them with weights or load further entities like (CCK) referenced users and work with them as usual. For a more complete list have a look at the release notes. Now I'm concentrating on the 6.x port, the rules engine. I hope to have at least a beta version out with the end of March.
Breadcrumbs...One new feature workflow-ng 2.x just got, ist the "Set breadcrumb" action. Perhaps you know eaton's great custom breadcrumbs module? This new action is similar, but...
In addition to the new features which were already available for some time in worflow-ng's 2.x series, some further improvements are waiting for you!
Logging per entityFirst off there is a new extension module, which is shipped with workflow-ng. It allows you to log a customize message on every support workflow-ng event for content or users. This is done by actions! For flexible display of the log messages, views support is available. So there a lot of possible use cases for this, I have to in my mind:
Activities..You could easily log certain actions of users and their buddies and list them in blocks and pages generated by views. So you can build something similar like the (really interesting) activity module!
State change logIn workflows it's often desired to have a log of state changes. E.g. if content, let's say an article goes from "needs review" to "published" this should be logged and displayed on a tab associated with the article (yes, views can do that!). Great, isn't it? Thank GHOP and corsix for that! Yes, corsix implemented the whole module in two GHOP tasks. This took him only 1 day per task, awesome!
Rules ?Furthermore I've changed the terminology as preparation for 6.x. Configurations are now called rules. I think the term "rule" describes it very well. With 6.x the core of workflow-ng will be a separate project: the Rules Engine
Looking at the TODO list you can see that I've recently implemented some new features for workflow-ng. The most important ones are:
- allow cloning of configurations
- allow ordering of configurations
- allow actions to load further entities
- on top of that, there is now support for loading referenced users and nodes from CCK fields
- allow modules to conditional include their action/condition configuration forms
- a brand new admin interface for the states module, which finally allows one to define custom state machines without coding. This machines may be e.g. used to track the state of content. Thanks GHOP and corsix for that!
I'm happy to announce the next release of workflow-ng. You can find the changelog at the release notes. I think most important are two new features: First of now there is a really useful "Execute arbitrary PHP Code" action and condition, thanks to the awesome GHOP contest. Then now workflow-ng comes with conditions and actions for the path module. This makes even automatic path aliases possible! So if you are interested in a light weight alternative to pathauto, checkout the new tutorial "Automatic path aliases for content".
That sounds really easy, not? Indeed one can easily configure that with workflow-ng as well as using the node go to module. But.... just using drupal_goto() to redirect to the new page breaks drupal's node access API as the node access grants are written after nodeapi 'insert' was invoked. If one uses nodeapi to create the redirect (like the node go to module and the workflow-ng solution), the grants doesn't get written any more.... Node go to issue: http://drupal.org/node/193944 workflow-ng issue: http://drupal.org/node/196445 Furthermore any other modules doing their job on nodeapi after the module issuing the redirect, won't be able to do so too. E.g. specified path aliases won't be saved any more. The list of possible problems is endless.. But how to redirect in clean way?
Drupal is currently participating at googles highly open participation contest. A really cool program! I 've used this opportunity to submit a task idea: Write an "Execute arbitrary PHP-Code" action and condition for worklfow-ng module I submitted the task on Dec 7th. corsix claimed the task on Dec 10th. Great! But not enough only 2 days later he has already completed the task! That's awesome! So let's see, perhaps I can find more task ideas for the students.. :)
Maybe you have already noticed it, yesterday I 've released workflow-ng 1.1, which is a bugfix release. So now I'm concentrating on new features, before I'm going to port the module to 6.x My ideas/plans are:
- allow cloning of actions
- make the assigned event editable (only available for "compatible events")
- allow assigning multiple events to one configuration (only available for "compatible events")
- add an execute php code action [done]
- allow ordering of configurations
- allow modules to exposes related entities, which can also be used with workflow-ng
- use that to add support for CCK user and node reference fields
- workflow-ng support for the privatemsg module
- workflow-ng support for the revision moderation module
- with that, write a tutorial how to schedule revision publishing
6.x ..Anyway, afterwards I don't plan to add much new features to the 5.x version, so that I can concentrate on 6.x. For 6.x I'm going to rename workflow-ng's rule based action evaluation system to a better fitting module name: rules. Then the workflow-ng project will only contain workflow specific enhancements for rules.
If you are interested in the slides of the worklfow-ng session, here are they.