Plone Theming

Plone provides a great way to apply a graphic design, or theme, to a Plone site - let us show you how

Diazo is a built-in Plone tool that maps web page content into an HTML design. We can provide training so your team can learn this powerful tool, or we can use it to theme your website for you. Here's how it works.

Diazo moves elements from a content page into placeholders in the design, without touching either. The design can be static HTML/CSS files local to Diazo, or a live site anywhere on the internet. The content can come from Plone or any other CMS or web application. The mapping between content and design is expressed in an XML-formatted rules file. This provides total flexibility in design and eliminates the need for a Plone custom theme product.

This process is illustrated in the following diagram.


Diazo is such a great theming technology that it has been embraced by the Plone community and comes built-in starting with version 4.2. The standalone version of Diazo can be used to theme any website or web application, or even to apply the same theme to multiple sites.


Theming a Plone site with Diazo has many advantages:

  • Greater flexibility - It offers total flexibility for placement of elements on the page.
  • Per section theming - Different theme rules and designs can be applied to different sections of the site.
  • No Plone theme products - It eliminates the need to create and maintain a custom Plone theme product, with Python code and a special page template language.
  • Shorter learning curve - Web designers do not need special Plone knowledge, the  HTML/CSS that they create can be used directly. Plone creates well structured HTML pages (especially Plone 4), so content rules are usually straightforward using CSS or XPath selectors.
  • Easy theme adjustments - Because the site theme is driven directly from standard HTML and CSS, it is straightforward for a web designer with only those skills to adjust the theme.
  • Faster page load time - Pages are rendered faster by optimizing the CSS and JavaScript needed to render a page.
  • Easy mashups - If Diazo is run outside of Plone, pages can be created that pull in content from disparate sources, effectively creating a dynamic “mashup” without the need to write custom code. This can be used, for example, to visually integrate an external blog or shopping cart into the Plone site.

Read More