Veda Williams’ Plone 3 theming book is a solid, good, valuable resource for plone themers. I got a review copy, so here’s my review :-)
My own background: I’ve build Plone websites professionally for four years at Zest software till April this year. And I’m still doing volunteer websites, so I get to handle everything including theming. I’m firmly in the programming camp and quite comfy with Plone’s internals.
The book aims at web designers with little to no Plone experience that get to theme a Plone website. And they’re in for quite a ride!
The positive ride: Plone is powerful. Great out-of-the-box functionality and usability. There’s a lot of work you don’t need to do worry about as themer.
The negative ride: complexity. Veda warns us in several places that Plone is in transition to a more maintainable and repeatable customization story. The transition means that the current situation is less than ideal. The theming process for Plone may be complex at the moment, but it is still possible to generate beautiful, high-impact themes.
Veda highlights the problem spots throughout the book and shows how to solve/handle them. Veda never hides them but is upfront about them and does every themer a service by doing so. And she (rightfully!) claims that the extra complexity is a necessary evil that allows Plone’s theming story to be remarkably powerful yet simple in later plone releases. (Most of that will probably end up in Plone 5).
The intro chapter introduces Plone and Plone theming. A warning about occasional complexity and a comparison with other web frameworks make it a good intro.
Chapter 2 gives you the basic non-plone-specific tools: suggestions for graphics editors, browser web development extensions and plugins, code editors. Firebug, yslow, colorzilla. If you don’t yet know one of these tools and get to use them after reading the book: it already paid for itself. Solid and useful chapter. One thing Veda forgot to mention is about the w3c validator: it sometimes raises errors for what’s actually valid code (in some specific cases, especially css).
Chapter 3 helps you set up your environment with buildout and version control. Version control in a theming book! Great that Veda pushes themers to use this essential tool. She could have added the suggestion that there are subversion hosting providers that will host your code without requiring the poor themer to set up an svn repository :-) Plone scores points here for using buildout in all their installers. And for unifying the installers. It allows the chapter to be quite short.
Chapter 4: generating a theme. Via “paster” (a sort of code generation script) of course. It is the only sensible choice, but good nontheless that Veda uses it as the main way to get started. The explanation of the difference between the browser/ and the skin/ directory is correct.
Chapter 5: generic setup, modifying actions, theme product structure, plone site structure. Loads of terms and loads of needed explanation. Good point for Veda: she recommends to put the stylesheet in the skin/ directory and not in the zope3-style browser/ directory. I agree completely. And the plone community gets a kick in the nuts at the top of page 106 about letting a bad situation persist “because the existing documentation must not fall out of date”. Well, now it is documented in this book that Veda did not like that decision :-)
Chapter 6: highly technical: zope3 components. There’s a solid warning at the start of the chapter that this is only to get an idea how the pieces fit together. The themer-specific instructions are in later chapters. Having to discuss “marker interface applied to a request upon traversal” and “register a view for a layer”: urgh. On the other hand: Plone’s zope3 usage does allow clean modifications to almost every aspect of Plone. Something that’s often not possible in other content management systems!
Chapter 7 deals with viewlets and portlets: the small pieces that make up a big part of Plone’s interface. I even learned something new: I didn’t know that a <plone:portletRenderer /> zcml statement existed. Veda made sure everything is covered! Good thing: she says “classic” portlets are OK. The name sounds bad and oldfashioned: she suggests “simple” or “quick” as alternative (better!) names.
Chapter 8: overview of Plone’s template language. Every statement’s explanation with an “how it works in Plone” practical example. Well done.
I liked chapter 9. She shows an example theme and what it’s made up of. A nice practical integration chapter. It comes together.
Chapter 10: common layout tasks like “modify the logo” and “move the searchbox somewhere else” and “get rid of that xyz”. And styling the breadcrumbs and other css tasks. Veda shows where to make the changes and how to do it. A clear explanation “this is how I did it”. Valuable chapter.
Chapter 11, on custom page views and styling per-section, contained a tip on something I’ve never done myself: add specific styles to the build-in WYSIWYG editor. I’ve never used that and contented myself with the regular h1-h3 styles. Something to keep in my mind! I never needed it before, got to think about that.
Chapter 12: useful add-ons. Useful additions to your plone site, directly related to theming. You’re really missing out if you don’t use some of these.
Chapter 13: multimedia. Useful chapter, as one of the FAQs is “how can I embed a youtube video in Plone?” You get the explanation here, including some other add-on tips and tricks.
Chapter 14: how to deploy (and share) your theme. It includes the vital tip to check your skin path order. It shows Veda is a battle-hardened veteran :-)
The final chapter 15 is Alexander Limi’s introduction on the future of theming in Plone, copied from http://plone.org. Basically: we’re going to fix up theming in Plone and make it a real treat. And to get a kind of preview-taste of that treat: use collective.xdv (or deliverance). I’m using deliverance for a site I’m running now and yes, deliverance rocks. I’ve got to try out the collective.xdv as the Plone integration sure looks fine. I highly recommend this approach. Theming is fun this way.
Wow, Veda has written an excellent book for themers with little or no Plone experience. Also themers with a few sites under their belt will appreciate the overview of everything that makes a Plone site work from a theming perspective. And the overview is in-depth: I haven’t missed a thing and even learned of some details I didn’t know existed. Recommended!
Plone’s theming story sucks a bit at the moment. Veda is right that you can accomplish what you need. She is also right in spending a couple of hard chapters explaining how certain things work, especially where the zope2/zope3 difference pops up it’s ugly head. Yes, Plone 5 will make it all better. Way better than before. But I still cringed a bit inside when reading all the stuff Veda had to explain. She really should be allowed to update her book when Plone 5 comes out, she’s earned it :-)
Disclosure: Packt, the publisher, sent me a free copy to review.
My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):