Skip to main content
Help improve PyPI by participating in a 5-minute user interface survey!

A sane, working, editor-friendly way of creating front pages and other composite pages. Working now, for mere mortals.

Project Description

Life, the Universe, and Everything

collective.cover is a package that allows the creation of elaborate covers for website homepages, especially for news portals, government sites and intranets that require more resources than a simple page or collection can offer. However, despite offering rich resources to build a cover, collective.cover also provides a very easy mechanism for managing its contents, built around a drag-and-drop interface.

collective.cover is based on Blocks and Tiles, like Deco, the new layout composition system for Plone.

Use cases

Suppose you are running The Planet, a news site that has a bunch of editors focused on getting news on different topics, like Economy, Health or Sports.

If you are the main publisher of the site, you may want to delegate the construction of the cover page of the Economy section to the people working on that content area, but you might not want them messing around the Sports section as well.

Also, suppose you have the final game of the World Cup and the match is going to be defined on penalties: you may want to prepare a couple of cover pages and publish the right one focused on the team that won in the end.

These are the kind of issues we want to solve with this package; we are still far from it, but that is the idea.

Don’t Panic

We are currently working on the documentation of the package; this is what we have right now (contributions are always welcomed):


To enable this package in a buildout-based installation:

  1. Edit your buildout.cfg and add add the following to it:

    eggs =
    ... = 1.1.1 = 1.0a2 = 1.7.2 = 1.0.1
    plone.tiles = 1.2
  2. If you are using Plone 4.2.x you need to add the following also:

    collective.js.jqueryui = = 1.5.6

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

Go to the ‘Site Setup’ page in a Plone site and click on the ‘Add-ons’ link.

Check the box next to collective.cover and click the ‘Activate’ button.


You may have to empty your browser cache and save your resource registries in order to see the effects of the product installation.

Not entirely unlike

Over the years there have been some packages designed to solve the problem of creating section covers in Plone. We have used and have taken ideas from the following:

Very old; the legacy code is so complex that is not maintainable anymore. It has (arguably) the best user interface of all. Layouts can not be created TTW. Viewlets are just page templates associated with content types; you can drag&drop viewlets around the layout. Publishers love it.
Code is very old, but still maintained (at least works in Plone 4). Allows to create complex layouts TTW and use any layout as a template. Easy to extend and edit (but is terrible to find a content to use). Needs a lot of memory to work and aggressive cache settings.
Allows the creation of layouts TTW but it has (arguably) the worst user interface of all. It is easily extended and there are several add-ons available that provide new functionality for it.
Home Page Editor of the Brazilian Chamber of Deputies Site
Strongly based on Collage, this package was presented at the World Plone Day 2012 Brasilia. It allows editing of home pages and the definition of permissions on blocks of content. Available only for Plone 3 and not openly published… yet.
A new package that lets site editors add portlets to a set of new locations: above and below page contents, portal top and footer. The package comes with a number of flexible layouts that are used to position the portlets, and locations can be fixed to the nearest site object, to facilitate inheritance. In collective.cover (this package), we don’t want to use portlets at all.

Share and Enjoy

collective.cover would not have been possible without the contribution of the following people:

  • André Nogueira
  • Asko Soukka
  • Carlos de la Guardia
  • Cleber J. Santos
  • Davi Lima
  • Érico Andrei
  • Franco Pellegrini
  • Fulvio Casali
  • Giorgio Borelli
  • Gonzalo Almeida
  • Héctor Velarde
  • JeanMichel FRANCOIS
  • Juan A. Díaz
  • Juan Pablo Giménez
  • Kuno Woudt
  • Laura Pérez Mayos
  • Marcos F. Romero
  • Maurits van Rees
  • Rodrigo Ferreira de Souza
  • Silvestre Huens
  • Thiago Curvelo
  • Thiago Tamosauskas
  • Launched Pixels (icon)

You can find an updated list of package contributors on GitHub.

Development sponsored by Open Multimedia, Ravvit and Simples Consultoria.


There’s a frood who really knows where his towel is.

1.0a6 (2013-11-12)


This release removes all upgrade steps from versions no longer supported. If you are upgrading from a version previous to 1.0a5 you should upgrade to 1.0a5 first and then you can upgrade to 1.0a6. This release also completely removes the code from deprecated image and link tiles; if you are still using image and link tiles do not upgrade until you have manually replaced both tiles instances with the new banner tile (this was supposed to be done on previous release but we did not had time to do it.)

  • Field order can now be set on tile configuration screen using drag-and-drop. (closes #248). [marcosfromero, cleberjsantos]
  • CSS improvements for list tile and content chooser. [agnogueira]
  • List tile is now configurable: you can set ordering and visibility for all fields and you can also set the preferred style for the title and the scale and alignment for the image thumbnail; the date of the items was also added (fixes #339). [hvelarde]
  • Fix image positioning on collection tile (fixes #318). [hvelarde]
  • Fix image positioning on basic tile (fixes #317). [agnogueira]
  • Let the icons sidebar fixed on top when scrolling the page (closes #342). [agnogueira]
  • Add short_name to all tiles. Use this as title in the tile list. This can be translated. [maurits]
  • Fix possible problem getting the css_class when the default configuration is used. The code tried to treat this as a dictionary instead of a simple string. [maurits]
  • Add offset as a configuration option to the collection tile. (fixes #298). [warpr]
  • Add cover-(type)-tile class to all tile templates (fixes #189). [warpr]
  • Support text from Dexterity items for the bodycontent and richtext tiles (fixes #323). [maurits]
  • Leaving layout editing tab after making changes now shows a confirmation dialog (fixes #314). [rristow]
  • Show a link to the related collection on compose view of the collection tile (closes #260). [agnogueira, hvelarde]
  • Increase test coverage. [tcurvelo]
  • Remove bundles from portal_javascript (closes #303). [jpgimenez]
  • Add German translation. [polyester, pbauer, svx]
  • Remove upgrade steps from unsupported versions (closes #295). [fulv]
  • Depend on collective.js.bootstrap (closes #201). [tcurvelo]
  • Remove code from Image and Link tiles (closes #301). [fulv]
  • Catalan translation added. [lpmayos]

1.0a5 (2013-10-02)

  • Added Norwegian translation. [espenmn]
  • Install IRelatedItems behavior to avoid ‘ReferenceException: Invalid target UID’ (fixes #294). [hvelarde]
  • Implement link integrity on Rich Text tile references (closes #35). [jpgimenez]
  • Register new alternate view for covers; the new view behaves like a standard content type view displaying object’s title, description and viewlets on Plone’s main_template main slot (closes #271). [hvelarde]
  • Fixes content-search in content chooser to correctly get the first page of results (closes #276). [marcosfromero]
  • Added any content type support for banner tile. If it has an image or getImage attribute, displays that image. And always adds a link (closes #241). [marcosfromero]
  • Prevent unnecesary page reloads when saving or canceling edit overlay in tiles (closes #274). [marcosfromero]
  • On collection tile, return a thumbnail only if the item has an image field and the field is visible (closes #278). [cleberjsantos, hvelarde]
  • Added Cover as Linkable in TinyMCE settings (closes #259). [marcosfromero]
  • Default CSS class for tiles (closes #262). [marcosfromero]
  • When adding a tile, display configuration icon only for configurable tiles (closes #204). [marcosfromero]
  • Auto add a column when adding a row (closes #212). [marcosfromero]
  • Remove dependency on plone.batching to avoid IndexError: multiple_pages on Plone 4.2. [jpgimenez]
  • Move CSS to registry_css (closes #244). [agnogueira]
  • Collection tile now fulfills the configured image size (fixes #239). [cleberjsantos]
  • Friendly layout for tile configuration (closes #133). [agnogueira]

1.0a4 (2013-07-27)


Release 1.0a4 includes a new banner tile that will replace image and link tiles completely, as we found them redundant. Please replace manually any instance of image and link tiles in your covers with banner tiles. Image and link tiles will be completely removed on next release.

  • Add Finnish translation. [datakurre]
  • Add Italian translation. [gborelli]
  • Package documentation was updated. [hvelarde]
  • ‘buttons.cancel’ in prepOverlay closeselector has to be in quotes to avoid unrecognized expression javascript errors [ericof]
  • Refactor collection tile to include header and footer fields and fix tile’s i18n. (closes #118) [hvelarde]
  • Add simple Chinese translations (zh_CN). [Adam tang]
  • Add banner tile that will replace image and link tiles; add deprecation warning to image and link tiles as they will be removed from package on next release; an upgrade step is provided for unregistering them to avoid further addition on covers. (closes #218). [hvelarde]
  • Make carousel tile configurable and avoid NoneType error by checking if carousel is empty (fixes #203). [hvelarde]
  • Refactor image tile to use original image and scales, when possible. [ericof, hvelarde]
  • Add border to carousel tile dot. (closes #206). [hvelarde]
  • Upgrade to 1.1 [ericof]
  • Refactor EnabledTilesVocabulary to avoid issues with situations in which we have no context/request (HT datakurre). [hvelarde]
  • Spanish and Brazilian Portuguese translations were updated. [hvelarde]
  • [bugfix] Prevent the configuration view to crash if the widget does not provide an ‘accesskey’. [frapell]
  • Allow editor to add custom class for each tile (closes #190). [jpgimenez]
  • Refactor vocabularies and avoid ComponentLookupError when tile is not available. [hvelarde]
  • Add ‘alt’ attribute to images in list tile. [ericof]
  • Fix image scaling view. [ericof]
  • Avoid ComponentLookupError by improved handling of Unauthorized access of non-published or deleted objects referenced in the tiles. [ericof]
  • Fix translation of Compose and Layout that must be in plone domain. [toutpt]
  • Add French translation. [toutpt]

1.0a3 (2013-05-03)

  • Better support for internal and external images (closes #188). [jpgimenez]
  • Gallery tile now allows sorting of items easily through a widget created for that purpose (closes #198). [Quimera]
  • A custom permission for the export layout funcionality was added; exporting a cover layout to the Plone registry is now an administrative task accomplished only by Managers and Site Administrators (closes #177). [Quimera]
  • Fix a bug in collection tile when the target collection was removed (closes #138). [jpgimenez]
  • Improve interface and performance of content chooser (closes #168 and #169). [jpgimenez]
  • Add upgrade step to rename resources in CSS and JS registries (fixes #171). [hvelarde]
  • An option in the control panel configlet was added in order to select the tiles that will be available for cover layout creation; an upgrade step is provided to update the registry with the new record (closes #191). [hvelarde]
  • Tile selection functionality in layout edit view was refactored to an explicit D&D UI (closes #183). [Quimera]
  • Apply default configuration to tiles at initialization (closes #100). [hvelarde]
  • Store basic tile data in unicode format to avoid UnicodeDecodeError (closes #144). [hvelarde]
  • A new special widgect for the cover creation and layout selection was added; the widget draws a preview of the layout in real time using an HTML5 canvas element (closes #179). [Quimera]
  • Show title of object as alt attribute in image of basic tile. [hvelarde]
  • Ensure tile UUID does not start with a number (fixes #137). [hvelarde]
  • Implements an original size scale to show the original image. [jpgimenez]
  • Improve the way than images are accesed from the original object, using the standard images traversal. (issue #158) [jpgimenez]
  • Fixed a bug with Plone 4.3 that avoided TinyMCE being displayed for RichText. (closes #157). [ericof]

1.0a2 (2013-04-09)

  • Move Galleria’s stylesheet and JS init to <head>. [davilima6]
  • New tile: PloneFormGen embedded form. [ericof]
  • New tile: Content Body. [ericof]
  • Update package documentation. [hvelarde, jpgimenez]
  • Package is now compatible with Plone 4.3. [ericof, jpgimenez, hvelarde]
  • Remove dependency on plone.principalsource (closes #152). [ericof]
  • Support five.grok 1.3.2 and 2.0.x. [ericof]
  • Update JQuery UI to version (fixes #124). [hvelarde]
  • Fix TinyMCE table conflict (closes #142). [agnogueira]
  • News Items can now be added to the carousel tile (fixes #146). [jpgimenez]
  • Basic tile date field visibility is now configurable. [jpgimenez]
  • Refactor carousel tile to use collective.js.galleria (closes #123). [jpgimenez]
  • Refactor list tile to use adapters to get the contained items uids. [jpgimenez]
  • Implements a way to ommit fields from tiles edit form and show it at configure form. [jpgimenez]
  • Refactor of collection tile. [hvelarde]
  • List and carousel tiles now support loading images from folderish content. [jpgimenez]
  • Have the <base> tag to include a slash at the end so relative ajax calls are called for the object and not its parent (fixes #48). [frapell]
  • In order to be able to load Dexterity items from the import content GS step, we need to provide this interface manualy, until a proper fix in Dexterity is implemented. [frapell]
  • Make the cover object to be an Item instead of a Container (fixes #114). [frapell]
  • Date and subjects fields on basic tile are now Read Only (fixes #129). [jpgimenez]
  • Fix row height in layout view (closes #128). [Quimera]
  • Fix filter feature on content chooser (closes #121). [Quimera]

1.0a1 (2013-01-07)

  • Initial release.

Release history Release notifications

History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


This version
History Node


History Node


History Node


History Node


History Node


History Node


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date (336.4 kB) Copy SHA256 hash SHA256 Source None Nov 12, 2013

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page