Book Image

Plone 3 Theming

Book Image

Plone 3 Theming

Overview of this book

Themes are among the most powerful features that can be used to customize a web site, especially in Plone. Using custom themes can help you brand your site for a particular corporate image; it ensures standards compliance and creates easily navigable layouts. But most Plone users still continue to use default themes as developing and deploying themes that are flexible and easily maintainable is not always straightforward. This book teaches best practices of Plone theme development, focusing on Plone 3. It provides you with all the information useful for creating a robust and flexible Plone theme. It also provides a sneak peek into the future of Plone's theming system. In this book you will learn how to create flexible, powerful, and professional Plone themes. It is a step-by-step tutorial on how to work with Plone themes. It also provides a more holistic look at how a real-world theme is constructed. We look at the tools required for theming a web site. The book covers major topics such as configuring the development environment, creating a basic theme product, add-on tools and skinning tricks, integrating multimedia with Plone, and configuring your site's look and feel through the Zope Management Interface (ZMI). Finally, the book takes a close look at the thrilling and greatly simplified future of theming Plone sites.
Table of Contents (20 chapters)
Plone 3 Theming
Credits
About the Author
About the Reviewers
Preface

Theming and other CMS frameworks


To understand the current state of theming with Plone, it's helpful to examine a rival content management system's theming story. In this case, we will look at Drupal, a popular open source CMS that is written in PHP, and touch briefly on WordPress.

Both Plone and Drupal provide online theming manuals. Plone also has additional quick start documents that explain how to build a theme in Plone 3. These documents have been integrated into the Plone theming manual and include practical instructions on how to accomplish common tasks. It is on par with Drupal's theming manual. As of this writing, both projects have solid theming documentation, although Drupal's might be organized slightly better.

Drupal may have more theming books than the Plone community, but it's worth mentioning that the theming documentation for Plone is quite helpful and covers most use cases. Unlike Drupal, the book you are reading now is the first book specifically geared toward theming with Plone, but it is the beginning of a trend. Basically, what this means is that either CMS is a good choice, and Plone has the documentation ready for new themers.

Another telling point is the availability of open source themes. Interestingly, at one point, Drupal had the themes.drupal.org site that allowed users to test-drive the available themes for Drupal. As of Drupal 5.0, the site was abandoned due to the shortage of volunteers. WordPress also offers a number of add-on themes, though most of them are geared specifically toward bloggers. Similarly, Plone volunteers are rapidly putting out new themes on a daily basis, although there isn't a single location (other than plone.org where Plone themes can be found.

This is the most active time for the Plone theming community to date, and the entire community has taken notice.

More than books, tutorials, and the availability of open source themes, the actual skinning process is where comparing Plone and Drupal is most critical. It's generally acknowledged that getting started with skinning in Drupal and WordPress is easier because users only have to worry about CSS, but once you get past the initial theme, you have to worry about PHP, which can be spidery and hard to understand. Conversely, Plone's theming framework is tough at the outset, but easier, more logical, and sophisticated over the long haul. Both situations present special challenges.

According to Larry Garfield in #drupal:

I'd say the hardest thing to get used to with Drupal is letting Drupal do things the Drupal Way rather than trying to force it into your mold. Drupal can bend in all sorts of weird and exciting ways, if you bend it where it's designed to bend. But if you try to shoe-horn it into the way you wish it worked rather than the way it does, you'll waste a lot time needlessly, especially at the theming layer.

The same could be said about Plone, but Plone's problem is less about shoe-horning and more about having a lot of concepts that need to be understood before the real progress can be made. Additionally, Plone currently provides more than one method of accomplishing theming tasks, which can cause confusion. Those various methods are steadily being unified and simplified, and the goal of this book is to demystify the complexity of Plone with regards to theming.

Larry Garfield from #drupal followed his previous comment by saying that:

Drupal 6 includes a heavily rewritten theme layer that is a lot nicer to work with.

Plone doesn't currently have an abstracted theming layer, though there are certain tools that are available to themers that will be discussed in this book. Moreover, the future of Plone is Deliverance and collective.xdv, non-Plone-specific tools that will turn the theming process into a nearly CSS-only experience. Deliverance and collective.xdv will position Plone over with the Drupals and WordPresses of this world, and with much greater power.

It's worth spending time with Plone, especially once you get a glimpse at the power under the hood. The real potential is in the value to the content manager. Heavyweight blogs such as WordPress, or lightweight CMS's such as Drupal, simply don't offer the necessary flexibility or ease of use, nor do they have the same level of extensibility. If you can build a Plone theme, you'll appreciate the real value inherent in Plone, and building a theme doesn't need to be intimidating once you know where to start.

While there's always going to be the question of which CMS is the most appropriate for the job, it's clear that Plone has a bright future, and is keeping pace with other CMS frameworks.