I didn’t get a lot of coding done this week – mostly due to increased forum traffic (good!) and working on the site redesign (also good!).
It’s nice to see the number of active users in the forum slowly grow. So far the forum has generated more feedback, input and inspiration that its sourceforge sibling has done in the past four years!
The coding I did get done was mostly cleaning up the toolbox classes. I finally decided that since I wanted to do that anyway it would be best to get themes more or less stable ASAP.
I also fixed the core.php generating code. As a side effect it should now also be possible to drop the trailing ?> of all ZenMagick core files [hear that, Raine;)]
I also started working on creating a zenmagick skin for the wiki. So far this just means it looks like the default monobook, just with a lot less code
I also found a new analytics plugin, so I don’t have to remember to update the skin file any more – yay!
Beside that I, like many others, I guess, struggled with the recent Firefox update. It’s been a bit bumpy to start with, but slowly the add-ons are getting their act together and don’t crash any more (I do not know any specifics, but it suddenly stopped again after updating like mad).
Finally, as I write this I am uploading a new snapshot with all the stuff that changed since 0.9.8. Be aware that themes are still work in progress. The changelog has details about all methods and other bits and pieces that changed. In particular the theme info class got removed and replaced by a yaml file (theme.yaml for all themes). The default/demo themes should be example enough to figure out what to do. Alternatively, creating a new theme with the theme builder should also create a new theme.yaml file that can be used for existing themes (unless, of course, they to special things in the theme info class; I doubt it, though)
Today is one of the rare occasions where I will include an image in one of my posts. Unfortunately, there isn’t that much opportunity to do so more often, but I have this inkling there will be more to come.
The reason is that Matt from malevolent.com took some spare time and created one! Thanks a lot!
It might not be to everybody’s liking, but I like it. So, here it is:

The other good news is that we’ll soon have a redesigned website to go with that logo! Who knows, we might even have ZenMagick T-Shirts soon if we aren’t careful
Once the new design is up we can also tackle creating integrated themes/skins for the wiki and forum. That should be fun and I am sure the result will be a much more usable system. Ultimately, that will hopefully also lead to more useful contents
Comments Off
It’s been an interesting week – not straight forward, but still productive.
I started by converting l10n chunks (those text files in the theme’s lang folder) to static/define pages. That removes the need for the chunks l10n code. This is part of the still undecided plan to move to gettext or perhaps some other l10n tool for localisation.
Next I thought about where to put the code that handles loading/writing static page contents (the files under lang/[language]/static). At that point I had a discussion about define pages and EZPages and I guess in the long run it will be better to drop static/define pages altogether and only have EZPages (or, even better, proper CMS integration).
So I looked at re-implementing the EZPage admin UI for ZenMagick and adding the missing language support. I added create/update/remove support to the EZPage service and now I am ready to tackle that.
This is where the not so straight forward bit comes into play. Around the same time it became clear that the static page editor in 0.9.8 is broken. While looking at fixes I realized that some of the pain is caused by zen cart’s WYSIWYG support code. Next thing I knew there was a new, improved version with support for no less than three different WYSIWYG text editors (CKEditor, TinyMCE, Xinha). It’s not perfect, but absolutely usable.
Comments Off
I’ve been distracted again by a bug in the static page editor in 0.9.8. After some investigation it became clear that this wasn’t just a small issue, but the editor is, in fact. unusable.
Looking back it is clear that moving to a single point of entry for all ZenMagick admin pages (via zmIndex.php), while being a good idea, has caused all these problems. In short: there is a lot of JavaScript missing.
Looking at the code and all the hacks around WYSIWYG support in zen cart (and the same code in the ZenMagick static page editor) I decided that ZenMagick could do better. So, after a couple days of hacking I present a new and simple API (well, just a matter of three settings) to easily add WYSIWYG support in ZenMagick.
Things are really looking good. I’ve used CKEditor and TinyMCE as two candidates to create editor plugins. It’s always good to verify new things with at least two different implementations as that usually really shows if there are any shortcomings. Each plugin took so far perhaps 3 hours. Most of that time was to figure out how to create the JavaScript required to make things work.
Then, after a suggestion, I added a plugin for xinha. That took about 1 hour
Nothing it perfect, of course, and these plugins are no exceptions. ALthough they are all three usable, there are a few things that could/should be improved:
- Add support for the save button that exists in all toolbars
- Add support for ‘basic’, ‘advanced’ and ‘expert’ level with increasingly blown up toolbars
- Make all work with multiple instances in a single page (I haven’t tested that at all, but at least for xinha its clear that some work will be required to get that working)
- Add an option to each plugin to make it the default editor; right now plaintext is the default and you need to set the default manually
As for the title of this post – I updated the roadmap, so it really isn’t a distration (any more)
Comments Off
Just a quick note that:
I just updated the wiki with some more details about the loader and bean definitions.
I also updated the naming conventions page to reflect recent changes in plugin loading…
Comments Off
With the forum in place I am really spoiled for choice when it comes to posting about things that I am currently trying evaluating for the framework. Lately, I’ve posted on the forum, but for completeness sake I should perhaps at least mention them here too….
Comments Off
I just realized it’s been 10 days since the last update and I generally haven’t been very talkative lately. Nevertheless, things have happened – as usual.
One major thing that happened in the last 10 days was that this blog now is hosted in New Zealand, rather than Germany. More speed for me, but hopefully no major impact for readers.
Most of the coding entered around removing the $zm_ prefix from template vars. With this out of the way there is only one $zm_ variable left: $zm_theme. It’s only used to pull static content and there are several ways to change this:
- Move methods into toolbox
Not ideal, as these currently support theme inheritance and should be somehow handled by savant to keep all that code in one place.
- Drop static page support

Not very likely, at least not in the short term.
- Add new methods to ZMSavant to access resources and allow resources to be accessed from everywhere in the theme, not just the content folder. Also, language support would have to be added – also not ideal.
- Convert all static pages to ezpages
Seems the most sensible way right now, in particular since ezpages are much more powerful, support proper titles and perhaps even meta tags (in the future…)
There is also one additional component to the above and that are l10n chunks. Chunks are something I created to avoid having to have 10 line strings in a l10n map. However, that is just a convenience thing and ideally should not be seem by users at all (and code generally isn’t bothered by things like that…).
One way to start would be to convert chunks to static pages as they are pretty much the same anyway… Doesn’t really help to solve the issue around $zm_theme, but reduces clutter elsewhere. Also, fixing static pages would then be even more appealing.
I also removed a few old plugins from the repo as I won’t touch them in the near future. Reminds me that plugin wiki pages really need to be updated :/
In order to get anywhere with chunks/static pages/ezpages I also extended the ezpages service to allow to create, update and remove ezpages. Adding a new ezpage editor that supports the language flag would be the logical next step, I guess.
Comments Off
The most exiting thing happening the last week surely was the release of ZenMagick 0.9.8. It the release with the most user/community feedback put into it ever. I am really looking forward to having more of that.
Other than that I’ve started working on the things off the roadmap for 0.9.9. Additions, corrections welcome.
I also started arranging for this blog to move to a new ISP, so there might be some disruption soon. Depending on available time I hope that the downtime won’t be too long.
Comments Off
I finally felt brave enough to release ZenMagick 0.9.8. I think it is a good time to do a release, seeing that there are so many new ideas coming from users and developers.
As usual there are release notes and also the beautified changelog. I think I’ve written enough about what is is in the release and so I’ll leave it at that for now.
One note about pugins, though. If you feel that a plugin is really missing (not all plugins have been released yet), drop me a line and I’ll see what I can do.
The freshmeat announcement will have to wait until tomorrow or perhaps even Tuesday, but I am sure will do it. Other things still to do are updating the apidocs (done!) and the demo store (which is still on 0.9.6, I think…) (done, except for the pretty links plugin)
Comments Off