Even though it will be some more time before the next release I’d like to write a bit about what is going to hit the shelfes in the future.
Form Handling
As already mentioned, there are going to be some major(ish) changes to templates. More specifically, fomrs and form fields. Due to the fact that form submissions [except for the checkout] are handled by ZenMagick code, it’s now safe to change the names of form fields.
Why would we do that? Well, getting the form field names and the property names of the model objects feeding them in line seems like a good idea. It also makes it a lot easier to move form handling onto the next level of using generic code rather than specific code for each form.
This change has had more severe consequences than I expected, though. For one thing, form validation changed a bit and a lot of controller that now take advantage of the new code.
Another area is url mappings. All build in forms that ZenMagick handles are now configured as part of the url mappings. That means that controller do not need to create, populate and validate form objects themselfes, but can rely on the fact that processGet() and processPost() are only called if the form validation (if configured) was successful. All that is left, is to call $this->getFormBean() to retreive an object containing all relevant form data.
One particular improvement in that context that I was looking forward to, was that now the state (text input) and zoneId (dropdown) are now properly separate fields which makes some things a lot easier during processing. No more guessing as to what the actual content is.
Toobox
There are more changes/additions to the toolbox to further centralize all helper code that templates ever need in there. Obviously, there is still room for improvements. The next steps will be a new element to help plugins and probably another one for admin pages (obviously there is some overlap between the two).
Plugins
I’ve written recently about some new plugin ideas, but there are a number of still unfinished plugins in the repository and it seems it is about time to get some of those done. A quick browse brings up the following:
- product associations
A generic association plugin. The focus has slightly changed recently, with a new idea being that there could be a generic association framework (presumably in core) and plugins that can add some sort of data source to drive relationships between products.
- product features
This really needs some time to get up to speed with recent changes and to make it actually work again as it was, before even trying to attempt improving it!
- promotions
There are some concepts and ideas, but not a lot of code yet. The basics are rule based promotions (perhaps realized as order totals) to allow discounts, etc
- surcharge
This is almost complete and will add another class of plugins to ZenMagick, namely order totals! Based on regular expressions it allows to add surcharges based on checkout data (right now this is used to implement a surcharge for certain credit cards).
- dev tools
Collection of developer tools. The language tool is one candidate to move there, as are a few things like a database table mapping generator and other useful stuff
- affiliate
There is a nice affiliate mod that I’ve started converting to ZenMagick. Most of the storefront is done, but as usual, the admin side takes time – if anyone is keen on plugin UI development, please let me know!
- redirect/forward
As described in my other post about plugins.
Other stuff
There are the obligatory bug fixes, some more cleanup and removal of deprecated code. The plan is to move all deprecated code into a separate plugin to allow people to upgrade while continue to use that old code. Most likely the legacy settings will move there too.