collective.cover

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

Project Description

collective.cover

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.

Who is using it?

These are some of the sites using collective.cover:

https://raw.github.com/collective/collective.cover/master/cover.png

The Presidency of Brazil uses collective.cover on the front page of its site.

Mostly Harmless

Travis CI badge Coveralls badge Downloads

Got an idea? Found a bug? Let us know by opening a support ticket.

Known issues

See the complete list of bugs on GitHub.

Don't Panic

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

Installation

To enable this package in a buildout-based installation:

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

    [buildout]
    ...
    eggs =
        collective.cover
    
    [versions]
    ...
    plone.app.blocks = 1.1.1
    plone.app.drafts = 1.0a2
    plone.app.tiles = 1.0.1
    plone.formwidget.namedfile = 1.0.10
    plone.tiles = 1.2
    
  2. If you are using Plone 4.2.x you need to add the following also:

    [versions]
    ...
    collective.js.jqueryui = 1.8.16.9
    plone.app.jquery = 1.7.2
    plone.app.jquerytools = 1.5.7
    plone.app.z3cform = 0.6.3
    

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.

Note

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:

CompositePack
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.
CMFContentPanels
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.
Collage
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.
collective.panels
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
  • Denis Krienbühl
  • É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.

Changelog

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

1.0a9 (2014-06-27)

  • Add Traditional Chinese translation. [l34marr]
  • Basic tile implementation was not copying images from objects when the tile was populated. This was causing an error when an image was removed from the original object (fixes #426). [vangheem]
  • Unpublished content was disappearing from the list tile after access from anonymous user (fixes #412). [adriana-rv, hvelarde]
  • Allow Site Administrator role to manage Cover control panel (closes #423) [ericof]
  • Fix showing original size of images in banner and carousel tile. [maurits]
  • Improve python:view.is_compose_mode() tests in tile Zope Page Templates. This test would return False when content in for example list tiles is reordered deleted, or dropped on from the content chooser. (fixes #421). [fredvd]
  • Content body tile markup was changed to handle different conditions (empty tile or not) in a saner way; a text indicating when the body text of an item is empty was also added. [hvelarde]
  • Added link in content body tile to related item (fixes #415) [kcleong]
  • Update jss.js to 0.6 and include minified version. This fixes the layout page rendering and column resizing on IE10+ which was broken. Jss.js creates on the fly css from javascript. (fixes #398). [fredvd]
  • SearchableText indexer for RichText tiles was fixed (closes #411). [hvelarde]
  • List tile is again fully sortable; a change on the JS code used there was reverted (fixes #413). [hvelarde]

1.0a8.post1 (2014-04-27)

  • Disable SearchableText indexer for RichText tiles as it was causing UnicodeDecodeError (refs. #411). [hvelarde]

1.0a8 (2014-04-25)

  • Fix for collection tile not showing header correctly (fixes #407). [kcleong]
  • Add RichText tiles to the SearchableText index of the cover. [thepjot]
  • Re-enable item sorting on the carousel tile edit form. It was by accident disabled by removing the field on the list tile schema from which the carousel tile inherits. [fredvd]
  • Use jQuery's .on instead of deprecated .live method. This allows compatibility with jQuery 1.9+. [naro]
  • Fix carousel tile so it does not break cover when dropping content with no image field (tile template was refactored and CSS class galleria-inner was removed). As a side effect the carousel tile is now fully responsive and you can select the image size that better fits the maximum desired size. An upgrade step to cook the CSS resources is provided (fixes #371). [hvelarde]
  • Handle missing tiles so they do not bork rendering and users are able to remove defunk ones. [vangheem]
  • Fixed 5-> 6 upgrade when collective.js.bootrap was already installed. [thomasdesvenain]
  • Make base tile inherit from plone.supermodel.model.Schema and fix other inconsistencies on tiles derivation (fixes #381). [jpgimenez]
  • Fix for generic title for list tiles introduced in 1.0a7 (fixes #393). [fredvd]

1.0a7 (2014-02-04)

  • Add title and show more to the list tile to have a consistent look-and-feel with the collection tile. [maurits]
  • Fix searching in content chooser on Japanese (fixes #374). [terapyon]
  • Fix Galleria warning on empty carousel tiles. [warpr]
  • Fix dropping Dexterity images on banner tile. [maurits, warpr]
  • Latest items are now properly loaded on content chooser when selecting the more link (fixes #383). [marcosfromero]
  • Use plone.api where possible. [hvelarde]
  • Japanese translation added. [terapyon]
  • Fix crash on view/compose/layout tabs when viewing a cover with an empty layout. [warpr].
  • Fix two javascript issues reported by the JSHint commit hook. [warpr]
  • Fix an issue which prevented Firefox users from making selections on the tile configuration dialogs. [warpr]
  • Gets the carousel test working again. (closes #333). [href]
  • Hides empty tile message in all views but the compose view (closes #348). [href]
  • Show the type of a tile (Basic Tile, Collection Tile, etc.) in the top center of the tile on the compose tab. This makes it easier for the user to know how they can add content, especially if the user does not have permission to view the layout tab. [warpr]
  • Make the grid system flexible. The default is still a 16 column Deco grid. You can register your own system as an IGridSystem utility based on the Deco16Grid class with a different name and select it in the configuration panel. You should create a grid that matches the css of the theme that you are using on your site. [warpr, maurits]
  • The reordering of list items is now immediately reflected in the DOM (closes #351). [href]

1.0a6 (2013-11-12)

Warning

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 unnecessary 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)

Warning

This release 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 plone.app.blocks 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 functionality 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 that images are accessed 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 plone.app.dexterity 2.0.x. [ericof]
  • Update JQuery UI to version 1.8.16.9 (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 omit 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 manually, 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.

Self-Certification

[X] Internationalized

[X] Unit tests

[X] End-user documentation

[X] Internal documentation (documentation, interfaces, etc.)

[X] Existed and maintained for at least 6 months

[X] Installs and uninstalls cleanly

[X] Code structure follows best practice

Current Release

No stable release available yet.

All Releases

Version Released Description Compatibility Licenses Status
1.0a9 More about this release…
Plone 4.2
Plone 4.3
GPLv2 alpha
1.0a8.post1 More about this release…
Plone 4.2
Plone 4.3
alpha