Hey everyone! The following is both a summary of the Zen Theme and Zengine skypecast last week and hopefully a beginning to documentation for Zengine that can be rolled into a Handbook page. Please edit/add to it as neccessary.
Zengine: what we say in the morning
Zengine is a template engine for Drupal 5.x that is built on PHPTemplate and is designed to make theming Drupal easier than ever. The intention of the Zen theme was and is to provide a standards-compliant, CSS-based, accessible theme that could be used as a base for creating Drupal themes in the spirit of CSS Zen Garden site (its namesake). However, it is still difficult to modify a theme by changing the CSS only. It is necessary to change the .tpl.php files used by PHPTemplate in order to make basic edits to the layout of your theme. Zengine seeks to alleviate this problem by making it possible to completely alter the look of your site by modifying the CSS only. It works like an extra layer on PHPTemplate that allows theming to be a more granular process and provides a solid framework for theme creation.
- Utilises .info files for identification
- Change the look completely by changing the CSS only (utilizing subthemes).
- Functionality added for using targeted overrides (as opposed to having to create a whole new page.tpl.php file, for example)
- Breaks the CSS up into individually overridable files, like:
This allows a themer who simply wants to change the theme colors, or the layout, to simply copy this file into their theme directory and modify it.
The Zen Theme and ZenZen
ZenZen is the Zen theme ported to Zengine as an example theme. The Zen theme as it stands now may need to be split from the Zengine project because of the difficulty in porting improvements made to ZenZen back into Zen, and input on this would be appreciated.
As with any project, the more people that participate in testing and writing code, the better Zengine will be. Right now, specific needs are:
- maintenance help for Zen in general; formatting and presentation issues and bugs need to be dealt with
- honing Zen into a solid CSS wireframe for theme building purposes, with appropriate how-to documentation
- commitment of useable code
Zengine and Drupal 6
Zengine is a Drupal 5.x project. This is because some of what Zengine does, like using .info files to identify themes, is being committed to Core in Drupal 6. At this point, the plan is that Zengine code will be moved into the Zen theme and any Zengine based themes will become Zen sub-themes (defined as such in their .info files). There will likely be no need for Zengine in Drupal 6. Even though code freeze for Drupal 6 is coming up fast (June 1), Zengine is still a worthwhile project because many companies who currently have Drupal 5 sites will probably not be upgrading for some time. For those who have to continue to theme Drupal 5 sites, Zengine will be their best friend doing it in a semantic, standards friendly, CSS-mojo-wielding way.