Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

CMFContentPanels is a plone portlets product to build composite pages

Project Description


Products.CMFContentPanels is a Plone product to build manageable composite pages.

You can create new content object which is composed of other contents as configurable ‘content panels’. You can change the layout, the panel skin and the content viewlet through the web. There is no need to use special content objects, you can just use the standard plone content and compose them



  • Support multi-page and multi-column
  • fully functional layout management, easy to use: move panels left/right/up/down
  • predefined viewlets for Document, Image, Folder, Topic, ZWiki Page, PloneChat, mxmDynamicPage.
  • each viewlet is configurable. it is quite easy to add new viewlets. You can add a RSS viewlet or a simplet text viewlet.
  • contentpanels content can be used as a portle thru collective.portlet.content.
  • support multi-rows: use ‘tile’ page layout mode, and each page becomes a new row!


To use this product, on a buildout based installation:

  1. Edit your buildout.cfg and add Products.CMFContentPanels to the list of eggs to install

    eggs =

After updating the configuration file you need to run the ‘’bin/buildout’‘, which will take care of updating your system.

Go to the ‘Site Setup’ page in the Plone interface and click on the ‘Add/Remove Products’ link.

Choose the product (check its checkbox) and click the ‘Install’ button.

Uninstall – This can be done from the same management screen, but only if you installed it from the quick installer.

Extending Products.CMFContentPanels (For Developers)

New viewlets

Viewlet is a view of content which can be selected in contentpanels. Viewlet can be a zpt or a zpt macro. Viewlets are registered with CMF Action mechanism.

  1. Write a viewlet for your content. You can refer to stuff at ‘CMFContentPanels/skins/cp_viewlets’, where are default viewlets.

  2. All viewlets are registered in portal_contentpanels. You can also register viewlets using:

    from Products.CMFContentPanels import registerViewlets

    With this way, if you reinstall CMFContentPanels, your viewlets configuration will not lost.

How to make viewlets configurable

  1. Viewlet configuration form fields can be define in a macro with name: ‘(your_viewlet_macroname)_viewletconf’

    For example, ‘’ has 2 macros: ‘base_portlet’ and ‘base_portlet_viewletconf’

  2. The form fields will be showed and saved automatically

  3. Your viewlet can use the form variables in a dict named ‘viewletOptions’, for example ‘viewletOptions[“itemCount”]’

How to add new panel skins

You can define a new css wrapper to define a new panel skin:

  1. Customise contentpanels_skin.css.dtml, write your new css wrapper there
  2. Go to ZMI ‘portal_contentpanels’, in the properties view, add your new wrapper there.


Bug report and feature request

In the “Products.CMFContentPanels product area”: you can report bugs and request new features.
Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
Products.CMFContentPanels-2.6b2.tar.gz (103.0 kB) Copy SHA256 Checksum SHA256 Source Feb 16, 2012

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting