Skip to main content

Add-on for Plone that adds portlet panels.

Project description

Panels are sets of portlets appearing in various layout configurations which you can insert into a selection of Plone’s existing locations (above and below page contents, portal top and footer).

It aims to render a number of existing add-ons obsolete, including Collage, collective.portletpage and Products.ContentWellPortlets. The functionality represented by these add-ons is mostly available in panels, too, and comes in an implementation that builds directly on Plone’s portlets framework.

Compatibility: Plone 4+ required.


You often have a need to add supplemental content to existing pages, content items or folders.

The included portlets infrastructure serves some, but not all of these needs, letting you add portlets in the left and right column, which are inherited down the content hierarchy.

Panels provide a simple mechanism to add portlets to additional locations, without inheritance, and let you display portlets in different layouts.


Front page

Instead of, or in addition to, a page acting as the default content on a folder, you can create a collage of portlets and display it below an introductory text.

There’s a lot of flexibility because you can integrate the panel display with Plone’s built-in content views. For instance, you could provide a search interface in addition to the standard folder listing.

Supplement static content

Use panels to add portlets above or below a static page.

Features or advertisement

Add panels to the ‘portal top’ location which by default renders just below the section navigation for an impressive effect.



To create a new panel, or manage existing ones, the editor clicks the “Manage panels” link appearing in the footer (it links to @@manage-panels) — similar to Plone’s column portlets.

The management view is an overlay of the default content view.

Creating a new panel

To create a new panel, there’s a collapsible form appearing just below the page title (“Add panel”).

If no panels exist already, the add form appears open to begin with.

Then, simply choose a location (a default choice is already provided), and select a layout. Then add portlets using the “Manage panel” form (see next).

Managing existing panels

In the management interface, a collapsible form appears below existing panels (“Manage panel”).

This is similar to Plone’s standard portlet interface and in fact uses it directly.

It provides options to add a new portlet, change panel layout or manage existing portlet assignments.


The management interface checks with Plone’s viewlet visibility settings to list only the applicable adding locations. This allows an administrator to visit the portal’s @@manage-viewlets screen and put a restriction on panel locations.

Adding additional locations is currently not supported. The limitation here is that Plone’s viewlet manager framework does not provide labels, or other enumeration.


There’s a choice of layout for each panel, selected when the panel is first added, with an option to change later on. These layouts are registered as components using an included ZCML-directive.

Use the directive to add additional layouts:



GPLv3 (


Malthe Borch <>


1.1 (2012-05-15)


  • Layout titles are now simply letters: A, B, C, etc. It turned out to be difficult to provide a short, descriptive title for each layout.


  • Improved styling of adding interface.

  • Added two new horizontal layouts that assign a fixed width of 1/3 to respectively the left-most and the right-most assignment.


  • Added Danish translation.


  • Fixed layout “Left” in the case of a single assignment.

  • The addable portlets check is now robust to misconfigured adding views and will log a warning instead of letting the exception trickle through.

  • Assignments now get unique names. For example, if two calendar assignments are added, the second assignment gets the name “calendar-1”.

  • The panel info hash now correctly encodes a valid portlet manager. This fixes an issue where KSS-enabled portlets would operate incorrectly.

  • The panel assignment class and traverser now inherit from OFS.Traversable.Traversable and implement the getId method. This fixes an issue where a physical path would not be correctly computed.

1.0.2 (2012-04-19)


  • Fixed issue where you could not add portlets to a panel other than the first (for a given manager). This fixes issue #3.

1.0.1 (2012-04-17)


  • Fixed template formatting issue.

  • Added markup from Plone’s column renderer, wrapping each portlet in a structure that provides a unique portlet hash. Also, use a “safe” rendering method such that rendering may fail gracefully.

1.0 (2012-04-12)

  • Initial public release.

Project details

Download files

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

Source Distribution

collective.panels-1.1.tar.gz (17.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page