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

Sectional styling


Here we will learn how to do sectional styling using a CSS hook that Plone gives us for free. This type of sectional styling is not used in our theme product, except to suppress the breadcrumbs from the home page, but we discuss it here as a prelude to the advanced topic of sectional banners that follows it.

The body tag in CMFPlone's main_template has an HTML class attribute that allows you to theme different sections of the site with different styles. All you do is use the prefix of section- and then the shortname of the item in the root folder. In main_template.pt there is a script that generates, on the fly, a class for each section of the site. The script is called getSectionFromURL:

<body tal:attributes="class string:${here/getSectionFromURL} template-${template/id};
dir python:test(isRTL, ‘rtl', ‘ltr')">

The rendered HTML it creates looks like:

<body class="section-news section-news-aggregator template- folder_summary_view"
dir="ltr">
<div id="visual...