There has been a lot of excitement in the Plone community lately about plone.app.theming - which provides a way to theme a Plone site without having to learn a lot about Plone itself. It uses Diazo technology, which allows you to grab dynamic elements from Plone, and display them from a static HTML page. While this is the new thing that everyone is jumping to, that doesn't mean that traditional theming becomes obsolete.
I am a big proponent of traditional Plone theming. This involves overriding Plone templates and using Plone technologies like TAL and viewlets for building a theme. So far in my examination of plone.app.theming, I'm finding that many traditional theming methods are still important for creating themes that maintain full control over the display of Plone elements and content. I believe that if you plan on doing a lot of work in Plone, you should learn traditional theming methods.
Why traditional theming is important:
- It helps you to understand the inner-workings of Plone. This can be important if you plan on doing more than just theming.
- If you have just a small change that needs to be made in a template (such as newsitem_view), it can be a lot easier to throw that template into skins with your change than to write up the rules with your customization.
- Learning TAL for displaying and modifying Plone content is very useful.
- Generic Setup is recommended for use in plone.app.theming for controlling CSS and JS files through the registries.
Why you shouldn't jump into plone.app.theming just yet:
- plone.app.theming is still a new technology in testing. Some sites are already using it, but I recommend waiting until it has been finalized and more documentation is available. There are a lot of planned features that have not yet been developed. (Though I know the developers would also appreciate it if you could test the product and provide feedback.)
- At this point, Diazo templates and rules are not editable within the site. This is a feature currently in the works (and is looking great).
- If building a Diazo theme from scratch, it can be easy to accidentally leave out some of the important Plone elements. Another feature being developed is a base theme that would give you a solid starting point.
Personally, I'm not convinced that plone.app.theming is the way for me to go in the themes I create from scratch, but I can see how it could be a very helpful tool, particularly with the current development being done on it. I just want to stress the importance of learning traditional theming methods, since they remain relevant.
In my Plone Theming Training at the Plone Conference next month, I will be focusing on traditional theming methods, but I will also cover creating a theme with plone.app.theming. There is still space available in the class if you want to learn how to theme Plone.
There will also be some Diazo talks at conference for those wanting to take that theming path.
What kind of experience have you had with plone.app.theming, and do you think traditional methods are still relevant?