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 Mosaic, the new layout solution for Plone.
Demo
For impatient types, there is a demo installation of collective.cover on Heroku. It needs about 60 seconds to spin up and it will purge all changes after about an hour of non-usage.
Use cases
Suppose you are running The Planet, a news portal 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 front 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:
CartaCapital (BR)
La Jornada (MX)
Palácio do Planalto (BR)
Portal Brasil (BR)
Rede Brasil Atual (BR)
Mostly Harmless
Got an idea? Found a bug? Let us know by opening a support ticket.
Known issues
Versioning creates zillions of empty blob files. If you’re using this feature in your site you have to take special attention to the number of free inodes in your file system, as you can run out of them; use the df -i command to check it.
Package is not compatible with standard Plone tiles. This will be addressed in a future release, if we get an sponsor.
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:
Edit your buildout.cfg and add add the following to it:
[buildout]
...
eggs =
collective.cover
[versions]
...
collective.js.bootstrap = 2.3.1.1
plone.app.blocks = 2.2.1
plone.app.tiles = 1.0.2
plone.tiles = 1.5.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
plone.directives.form = 1.1
If you want to use a newer release of collective.js.bootstrap, you will need to update plone.app.jquery:
[versions]
plone.app.jquery = 1.8.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.
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. Works under Plone 3 only.
- 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.
Changelog
There’s a frood who really knows where his towel is.
1.3b1 (2016-09-12)
Update Traditional Chinese translation. [l34marr]
Remove dependency on five.grok (closes #510). [l34marr, rodfersou]
Use the X-Robots-Tag header to avoid indexing of image scales on default view; this will reduce the number of 404 (Not Found) responses generated by crawlers visiting the site in search of volatile content. [hvelarde]
Enforce usage of plone.api >= 1.4.11 to avoid TypeError while running upgrade step to profile 14. [hvelarde]
1.2b1 (2016-07-04)
A new calendar tile was added. The tile dislays a calendar that highlights the events taking place on the current month, the same way as the standard calendar portlet does. [rodfersou]
Handle AssertionError on upgrade step to profile 13 to avoid failures when a cover object has duplicated tiles on it. Now, an error message will be logged and the object will be skipped; you must manually remove the duplicated tiles (closes #619). [hvelarde]
1.1b1 (2016-03-31)
Enforce usage of plone.app.blocks 2.2.1 to avoid issues with tiles breaking the whole cover page. [hvelarde]
Add option to select random items in collection tile (closes #608). [rodfersou]
Carousel tile now uses a relative ratio to set its height (fixes #414). [terapyon, hvelarde]
Remove hard dependency on plone.app.referenceablebehavior as Archetypes is no longer the default framework in Plone 5. Under Plone < 5.0 you should now explicitly add it to the eggs part of your buildout configuration to avoid issues while upgrading. [hvelarde]
Link integrity was refactored to work on all tiles and under Plone 5; a hard dependency on Products.Archetypes was removed (fixes #578). [hvelarde, rodfersou]
Do not use the calendar tool to discover Event-like objects as it was removed on Plone 5. Instead, try to guess if an object is an Event by using its catalog metadata. [hvelarde]
Package is now also tested with plone.app.contenttypes installed; a few bugs related with API incompatibilities among Archetypes and Dexterity were fixed. [hvelarde]
Remove Grok dependency for vocabularies. [l34marr]
You can now use a collection to populate a carousel tile; search results without a lead image will be bypassed (fixes #574). [rodfersou]
Shows message to user if an exception is thrown in a tile in AJAX calls. (closes #581). [idgserpro]
Fix date format in collection tiles (closes #584). [tcurvelo]
RichText tile no longer breaks with plone.app.widgets installed (closes #543). [frapell, rodfersou]
Add missing dependency on collective.z3cform.datetimewidget. [hvelarde]
Remove hard dependency on plone.app.stagingbehavior as that package is no longer needed in Plone 5. Under Plone < 5.0 you should now explicitly add it to the eggs part of your buildout configuration to avoid issues while upgrading. [hvelarde]
Implement drag and drop among tiles (closes #487). [rodfersou]
Clean up static files. [rodfersou]
Previous entries can be found in the HISTORY.rst file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for collective.cover-1.3b1-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd23b3cd89141b2a1f35ecbe66b8c10daef16438d5d998a9b2c65a879962b52d |
|
MD5 | 00d7508aa82a2db607c398a88d774a51 |
|
BLAKE2b-256 | 059408edb042c88d58c8f7dc953e8648ede034f82de7d6ec2e7a57aef62ba236 |