Table of Contents
Preface
Chapter 1: Theming Plone 3: An Overview
Chapter 2: Skinner's Toolkit
Chapter 3: Setting up your Development Environment
Chapter 4: Create and Install a Theme Product
Chapter 5: Making Manual (TTW) Changes or What Not to Do
Chapter 6: Working with Zope 3 Components
Chapter 7: Customizing Viewlets and Portlets
Chapter 8: Understanding Zope Page Templates and the Template Attribute Language
Chapter 9: Creating, Installing, and Tweaking our Theme
Chapter 10: General Styling and Templating Changes
Chapter 11: Custom Page Views and Sectional Styling
Chapter 12: Add-on Tools and Theming Tips
Chapter 13: Plone and Multimedia
Chapter 14: Deploying and Contributing Themes
Chapter 15: The Future of Theming for Plone
Index
- Chapter 1: Theming Plone 3: An Overview
- Background
- What is Plone, really?
- Technical overview
- Books about Plone
- Theming and other CMS frameworks
- The evolution of skinning for Plone
- Summary
- Chapter 2: Skinner's Toolkit
- Graphic design tools
- Adobe Photoshop
- Adobe Fireworks
- GIMP
- Browser add-ons and important notes
- Internet Explorer
- Firefox
- Firefox Web Developer extension
- Firebug extension
- YSlow
- Colorzilla
- Safari tools
- Safari Web Inspector
- Validation tools
- Text editors
- TextMate
- CSS Edit
- E Text Editor
- Notepad
- WordPad
- Dreamweaver
- Summary
- Graphic design tools
- Chapter 3: Setting up your Development Environment
- Buildout and you
- Understanding the terminology
- Setting up your development environment
- Subversion for version control
- Download Plone
- Macintosh dependencies for the Unified Installer
- Windows dependencies for the Unified Installer
- Operating system agnostic dependencies
- Buildout: The Plone filestructure
- Summary
- Chapter 4: Create and Install a Theme Product
- Generating your theme product using paster
- Available templates
- Generating your product
- Filestructure of a plone3_theme product
- Adding your theme product to your buildout
- Starting Zope and installing your product on a Plone site
- Creating a Plone site
- Installing your Plone theme
- Putting your site into debug mode
- Summary
- Generating your theme product using paster
- Chapter 5: Making Manual (TTW) Changes or What Not to Do
- Prerequisites
- What this chapter will not cover
- Registering and installing a new theme
- Register the filesystem directory view
- Make the directory view available to portal_skins
- Install your theme product
- General guidelines during development
- About a theme product's architecture
- Changing your site via CMF action categories
- Document actions category
- Site actions category
- Folder buttons category
- Object category
- Object buttons category
- Portal tabs category
- User category
- About GenericSetup
- Base profile
- Extension profiles
- An example extension profile
- Taking snapshots
- Export profile
- Import profile
- Moving portal_actions configurations into a filesystem product
- Skin layer customization, the old-fashioned way
- Using the portal_skins tool
- Changing base_properties
- Modifying images using the custom folder
- Extracting items from the custom folder
- Using stylesheets and the CSS resource registry tool
- Common conventions for using stylesheets in Plone
- Overriding base Plone stylesheets
- DTML support
- Location of files and controlling bloat
- Adding new stylesheets
- Starting with CSS in the ZMI
- Creating a theme-specific stylesheet in your filesystem product
- Common conventions for using stylesheets in Plone
- Working with JavaScripts in your theme product
- Summary
- Chapter 6: Working with Zope 3 Components
- About the architecture
- Introduction to ZCML
- Zope 3 browser layers and resources
- Using images as browser resources
- Using stylesheets as browser resources
- Browser pages
- Create a Python class for our browser page
- Add the interface for our browser page
- Registering our browser page
- Create a page template for our view
- Write the GenericSetup steps to create the new CMF action category
- Register the viewlet in your theme product
- Enable the browser page
- Summary
- About the architecture
- Chapter 7: Customizing Viewlets and Portlets
- Viewlets
- Class-based versus template-based viewlets
- Registering viewlets in a viewlet manager
- Reordering viewlets within a viewlet manager
- Showing, hiding, and unhiding viewlets within a viewlet manager
- Overriding a viewlet template
- Overriding a non-template-based viewlet
- Portlets
- Modifying Plone 3 portlets in a theme product
- Creating a new Zope 3 portlet
- Add the interface for our browser page
- Create a page template for our view
- Write the GenericSetup steps to create the new portlet
- Write the GenericSetup to create a new CMFAction category and actions
- Register the portlet in your theme product
- Enable the portlet
- Using Classic portlets in a theme product
- Using portal_view_customizations
- Summary
- Viewlets
- Chapter 8: Understanding Zope Page Templates and the Template Attribute Language
- About ZPT
- What does TAL look like in practice?
- About the Template Attribute Language
- tal:attributes statement
- Multiple attributes
- tal:define statement
- How this works in Plone
- tal:condition statement
- How this works in Plone
- tal:content statement
- How this works in Plone
- tal:repeat statement
- How this works in Plone
- tal:replace Statement
- How this works in Plone
- tal:omit-tag statement
- How this works in Plone
- tal:on-error statement
- How this works in Plone
- TAL "structure" expression syntax
- How this works in Plone
- tal:attributes statement
- Order of operations
- Built-in names in TALES
- Summary
- About ZPT
- Chapter 9: Creating, Installing, and Tweaking our Theme
- About the theme
- Creating a theme product
- Altering the theme product's structure
- Renaming the theme
- Shortening folder names
- Adjusting how stylesheets and images are used
- Installing the theme product
- Adjusting web site content to support the design
- Summary
- Chapter 10: General Styling and Templating Changes
- Modifying the various sections of the page
- Basic styling
- Changing the logo
- Adding a banner image
- Customizing the portal actions
- Adjusting the searchbox display
- Moving the searchbox
- Adjusting the personal bar
- Suppressing the top navigation
- Moving and styling the breadcrumbs
- Base portlet styling
- Adjusting the footer and the colophon
- Altering the navigation
- Summary
- Modifying the various sections of the page
- Chapter 11: Custom Page Views and Sectional Styling
- Changing the default home page display
- Using CSS styles and the visual editor
- Using a basic page template for a home page view
- Using Python code to render a home page view
- Sectional styling
- Applying Internet Explorer fixes
- Summary
- Changing the default home page display
- Chapter 12: Add-on Tools and Theming Tips
- Popular add-on Plone products
- Enabling drop downs using webcouturier.dropdownmenu
- Collage
- Tableless styling using Plone Tableless
- CSSManager
- Products.EasyAsPiIE
- collective.skinny
- FS Dump
- qPloneSkinDump
- Collection and static portlets
- Sectional theming
- themetweaker.themeswitcher
- Non-Plone-specific products for theming
- sIFR
- Rules-based theming
- Debugging tools and tips
- GloWorm
- About tracebacks and Pdb (the Python debugger)
- Running more than one operating system at a time
- Summary
- Popular add-on Plone products
- Chapter 13: Plone and Multimedia
- Flash integration
- Embedding Flash and other media in a page
- Embedding Flash in a page template
- Plone add-ons for multimedia
- collective.flowplayer
- Slideshow Folder
- Plone4Artists Video
- Other products to watch out for
- Plone4ArtistsAudio
- Plumi
- Summary
- Flash integration
- Chapter 14: Deploying and Contributing Themes
- Deploying your theme on a server
- Maintaining an orderly deployment
- Documentation
- Configuration
- Quality assurance
- Deploying a theme for public use
- Summary
- Deploying your theme on a server
- Chapter 15: The Future of Theming for Plone
- Why a new approach?
- About the future of theming in Plone
- Is XDV ready for serious deployments?
- Background and history
- Choosing the appropriate theming approach
- Which one should I use?
- Tools and prerequisites
- Adding XDV to your Plone instance
- Platform notes
- Adding collective.xdv
- Running buildout
- Activating XDV
- Adding the HTML and rule files
- Enabling the theme transform
- Testing that everything works
- How it works
- The rule file
- Rules Overview
- <replace>
- <append> and <prepend>
- <copy>
- <drop>
- Summary



