Skip to main content

Contentpage based on Simplelayout for for web/intranet

Project description


ftw.contentpage provides some content types optimized for organisations, communities, associations, and more.

It uses simplelayout to manage and display the content.


  • Add ftw.contentpage to your buildout configuration:
eggs +=
  • Install the generic import profile.



  • ContentPage: Folderish type for the site structure. Contains the blocks
  • AddressBlock: AddressBlock contains address informations and it uses ftw.geo to render a map
  • ListingBlock: A folderish block, which lists files and images by default. Two block views are provided: Tabular listing and a gallery view. The columns of the file listing are configurable per block. The default set of columns is configured through the the registry ( The default sort order of the Listingblock file listing can be configured per block.
  • EventPage / EventFolder: A simple and minimal event implementation based on a ContentPage.
  • News / NewsFolder: A simple news implementation based on a ContentPage.

Special views:

There’s a two-column and two-level overview called authorities_view, which displays a list of ContentPages with an AddressBlock. If an AddressBlock is added to a ContentPage, it adds a marker interface on the ContentPage, so it’s easy to recognize ContentPage’s containing an AddressBlock.

The EventFolder has a simple events listing, which shows the next 10 upcoming events (batching included).

The NewsFolder has a simple news listing, which shows the 10 most recent news entries (batching included).

ContentListing viewlet:

The content listing viewlet is registered for all ContentPages. It shows categorized subcontent, within the ContentPage The categorization is done by a schemaextended field, so it’s also possible to categorize your own or any other content.

** Teaser Image ** All content pages, event pages and news are able to display a teaser image, which is stored on the content itself. It behaves like a regular block and shows also the description. The teaser image related fields have their own write permission, one per content type. Take a look at the rolemap.xml for details.

** Portlet ** It’s possible to enable an archive portlet for News and EventPages. It only works if the current view is the news or event listing view. The portlet is not created by default.

Code example:

<class class="">
  <implements interface="ftw.contentpage.interfaces.ICategorizable" />

ftw.contentpage is using the additional slot provided by simplelayout (implements the IAdditionalListingEnabled interface of simplelayout)

So the layout has the following structure:

  1. Simplelayout main slot for blocks
  2. The content listing viewlet
  3. The additional slot for blocks

This way it’s possible to display content below the content listing viewlet (by drag’n’drop)

ftw.lawgiver support

ftw.contentpage supports ftw.lawgiver



Runs with Plone 4.1, 4.2 or 4.3.


1.5.1 (2013-10-07)

  • Add French translations [elioschmutz]

1.5 (2013-09-26)

  • Fix bug in addressblock-maps if diazo is activated. Each map has it’s own id, generated with the id of the addressblock. Diazo uses the same id for anchor links. The openlayers js is searching for the map id and finds the link instead the map and breaks in a ‘TypeError: Cannot read property ‘w’ of null’ error.’ The fix adds a prefix to the map-id to be sure, we don’t get duplicated ids on a page. [elioschmutz]
  • Hide teaser viewlet for non-simplelayout views. [jone]
  • Add document date to listing block if ftw.file is installed. [jone]
  • Fix extend_query_by_date function if ‘datestring’ contains a bad date-format. The function is to extend a query (dict) with a daterange and returns the new query. If the function can’t convert the datestring to a datetime object, it returns None and the given query is lost. Now the function returns the untouched query. [elio.schmutz]
  • Fix TypeError in news rss listing. [jone]
  • Remove ISimpleLayoutCapable from news folder. News folder is not really a simplelayout container. [jone]
  • Subject listing: fix “#” letter. [jone]

1.4 (2013-09-02)

  • Adjust openlayersimplementation for addressblocks to be able to add multiple addressblocks on one page with correct map-rendering [elioschmutz]
  • Add browserlayer. [mathias.leimgruber]
  • Remove upload.js [mathias.leimgruber]
  • Add view to check if multiupload is possible. [mathias.leimgruber]
  • Do not use jq in collaps_archive.js. [mathias.leimgruber]
  • Add multiupload view for Listingblocks based on c.quickupload. [mathias.leimgruber]
  • Add mimetype icon to subject-listing [elioschmutz]
  • Fix subjects-vocabulary if we get unique values in case sensitive [elioschmutz]
  • Implement collapsible archive portlet [elioschmutz]
  • Implement alphabetical subject listing as @@subject-listing. [jone]
  • Added view for contentpage to display the blocks as tabs. [Julian Infanger]
  • Updated translations for url field in addressblock. [Julian Infanger]
  • Change queries for archive and news portlets from portal_type to provided interfaces [eschmutz]
  • Change inser-after to insert-after in viewlets.xml [elioschmutz]
  • Newsfolders query is now looking for the INews interface insted of the News portal_type [eschmutz]
  • Add department field to addressblock. [treinhard]
  • Enable categorization for PFG forms. [treinhard]
  • Disable EventListing if is installed [href]

1.3 (2013-06-13)

  • Remove extraAdressLine from geo query. [mathias.leimgruber]
  • Add ID as column to listingblock. [jone]
  • Add review state as column to listingblock. [Julian Infanger]
  • Added simplelayout summary view to display more details in contentlisting. [Julian Infanger]
  • Register the IOrgUnitMarker interface so that it is avaiable in manage_interfaces. [jone]
  • Suggest the parents title for addresstitle in addressblock. Its the better way than just display it if no addresstitle is set. [Julian Infanger]

1.2.1 (2013-06-03)

  • Do not copy parent layout. [mathias.leimgruber]
  • Fix off-by-one error in listingblock. This caused that the listingblock was not displayed when only one item was in the listingblock and the block was not editable. [jone]

1.2 (2013-05-27)

  • Fix in news portlet. Use getObject instead of restictedTraverse(path). [mathias.leimgruber]
  • Do not show description field of textblock. [mathias.leimgruber]
  • Use summary attribute in table instead of title. [Julian Infanger]
  • Do not show the author in newslisting for anonymous user, if the property allowAnonymousViewAbout is not true. [Julian Infanger]
  • Hide empty listing blocks for anonymous. [jone]
  • Sort content categories alphabetical. [mathias.leimgruber]
  • Fix content_categories index. Should be available on ICategorizable not on IContentPage
  • Add ListingBlock and AddressBlock to addable types of News. [mathias.leimgruber]
  • Added helper javascript for start and end date widget. [Julian Infanger]
  • Fix news result quantity. [mathias.leimgruber]
  • Add a configurable “Show more or show all News link” link into the footer of the news portlet. It only shows up if there are news to show and if the “Show all news” box is ticked. [mathias.leimgruber]
  • Search News and Events recursively. [mathias.leimgruber]
  • Change german transaltions. [mathias.leimgruber]
  • Fix content type on text fields of address block: use text/plain as input type. [jone]
  • News listing view: handle news without effective date. [jone]

1.1 (2013-04-29)

  • Fixed condition for addrestitel in address templates. [phgross]
  • Added publication date viewlet to news view. [Julian Infanger]
  • Add custom date formatter for events. [mathias.leimgruber]
  • Improve test coverage [mathias.leimgruber]
  • Make textblock title searchable. [Julian Infanger]
  • Do not assign any workflow to TextBlock, AddressBlock and ListingBlock Provide an upgrade step, which removes the currently assigned workflow. [mathias.leimgruber]
  • Fix AddressBlock FTI - Change (Default) alias to (dynamic view). [mathias.leimgruber]
  • Add more test for EventPage. [mathias.leimgruber]
  • Add teaser image functionality for contenpage. [mathias.leimgruber]
  • Browserviews should not be public. [Julian Infanger]
  • Updated German translations [phabegger]
  • Fill content-core slot instead of main slot and show edit-bar. [mathias.leimgruber]
  • Add Event type. [tschanzt]

1.0 (2013-04-10)

  • Init release [mathias.leimgruber]

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 (187.0 kB) Copy SHA256 hash SHA256 Source None

Supported by

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