Skip to main content

A product to create page compositions in Plone. Content can be created directly inside the object or existing items can be pulled in for display.

Project description

Collage

Compatibility

Plone 3.1 Five 1.5

About

Collage is a product for aggregating and displaying multiple content items on a single page.

It provides the following content-types:

  • Collage

  • Row

  • Column

  • Alias

The first three are structural containers that provide basic layouting functionality. The premise is that a column fits inside a row which again fits inside a collage.

The Alias-type is provided to allow displaying existing objects from the site inside the collage.

Upgrading

Open in ZMI …/your-site/portal_setup and click the “Upgrades” tab. Select the “Products.Collage:default” profile and see if upgrades are available. Run them :D

Javascript functionality

We use the jquery-library to facilitate easy scripting. Ajax is used to move content items, columns and rows around without reloading the page.

Status

Used in production.

Support for add-on packages

These should be added to the collective.collage package:

under ./browser/addons/<package name>

Make sure collective.collage is in your python path if you want these views registered for use in Collage.

Issue tracker

http://www.plone.org/products/collage/issues

Credits

Sponsors

Work on this product has been sponsored by Headnet (http://www.headnet.dk).

Collage developer documentation

The Collage product was built to be easily customizable.

Content views

New content views can be added by registering a browser view with a browser:page-directive. Examples of this can be found in:

./browser/views.zcml

A view for a standard document can be registered as follows:

<browser:page
   name="my-view"
   for="Products.ATContentTypes.content.document.ATDocument"
   permission="zope.Public"
   template="my-view-template.pt"
   class=".document.MyDocumentView"
   layer="Products.Collage.interfaces.ICollageBrowserLayer"
   />

To display a human-readable title, we associate the view with the following class, placed in a file document.py::

from Products.Five.browser import BrowserView

class MyDocumentView(BrowserView):
    title = u'My view'

Skins views

New skins views can be added by registering a named utility in:

MySkin/browser/skins.zcml

For example, a skin “Alert” for the view “my-view” can be registered as follows:

<utility
   name="collage-my-view-alert"
   provides="Products.Collage.interfaces.IAlertSkin"
   factory=".skins.PortletSkin03"
/>

To display a human-readable title, we associate the utility with the following class, placed in a skins.py:

from Products.MySkin import MyMessageFactory as _

class PortletSkin03(object):
    title = _(u"skin-03", default=u"My portlet skin")

Add IAlertSkin in MySkin/interfaces.py:

from zope import interface
class IAlertSkin(interface.Interface):
     """Interface for alert skins views."""

To associate this skin to a view, you must add the interfaces implemented by the skin:

class MyDocumentView(BrowserView):
    title = u'My view'
    skinInterfaces = (IAlertSkin,)

Note that you don’t need this above stuff for portlets views that are already skinnable.

Finally, add your CSS rules in a stylesheet:

#collage .collage-my-view-alert {
 ...

}

Note that if you are using “Merge CSS composition” of CSS registry, your stylesheet must be after “collage.css” and use the same condition as the former:

object/@@collage|nothing

Content controls

Content controls are registered as viewlets. See ./browser/viewlets.zcml for examples.

Changelog

Collage 1.2 beta 3 (2008-08-15)

https://svn.plone.org/collective/Products.Collage/tags/1.2b3

  • Packaged as a python egg and released on pypi. [davisagli]

  • Renamed builtin portlet skins and gave minimum CSS to them. [glenfant]

  • Re-using ATContentTypes.content.schemata.ATContentTypesSchema and removing copied/pasted portions of code in our schema definitions. [glenfant]

  • Removed CMF skins layer “Collage” and spreaded its stuffs in Zope 3 style browser resources and pages (CSS). Added an upgrade step for this. [glenfant]

  • Using the MessageFactory for labels and descriptions in schemas. Code is more compact and i18ndude friendly. [glenfant]

  • Added unit tests for utilities. [glenfant]

Collage 1.2.0 beta 2

https://svn.plone.org/collective/Collage/tags/1.2.0beta2

  • Added a GenericSetup upgrade step to 1.2.0. [glenfant]

  • Removed useless Folder and Plone Site types setups. [glenfant]

Collage 1.2.0 beta 1

https://svn.plone.org/collective/Collage/tags/1.2.0beta1

  • Added a skin demo for portlets [glenfant]

  • Code cleanup with pyflakes [glenfant]

  • Registering skin with ZCML [glenfant]

  • Version is now 3 digits (major.minor.bugfix) as most components. [glenfant]

  • Extensions/* (Install script) is now useless. Removed [glenfant]

  • Removed meta_type attr in GS profile when not creating objects. (potentially harmful according to MArtin Aspeli) [glenfant]

  • Defining “view” variables in templates is harmful. Renamed to kssview (generally) [glenfant]

  • For reason I can’t understand, templates macros for KSS editing only work when in a <span metal:define-macro …> or a <div metal:define-macro …> [glenfant]

  • We must set each fied in its own macro in the xx_portlet.pt views otherwise KSS screams. [glenfant]

  • Made portlets skinnable (reintroduced some of the zegor branch) [glenfant]

  • Fixed unicode error in clipboard’s title (reintroduced fix from zegor branch). [glenfant]

  • I hate tabs for indenting (removed in every file I needed to change) [glenfant]

  • Some easy code refactorings: the trunk does not support Plone 2.x and older versions any more. [glenfant]

  • Added some markups for i18ndude in Python. [glenfant]

  • Moved (and added) tests to “tests” directory. [glenfant]

  • Making templates ready for i18ndude that found malformed stuffs when ZPT is more tolerant. [glenfant]

  • Made split- and expand-icons transparent [malthe]

  • Added clickable link view.

  • Simplified view class names. [malthe]

  • Removed annotations hack (we now expect content to be IAnnotatable). [malthe]

  • Image standard display now shows the actual image rather than its preview. This caused issues with large images in a Collage being upscaled when displayed. [rockdj]

Collage 1.1

https://svn.plone.org/collective/Collage/tags/1.1

  • Various bug fixes [malthe]

  • No longer ship with jQuery. [malthe]

  • Show locking viewlet in content menu [malthe]

  • Fixed a jQuery integration issue [malthe]

Collage 1.0

https://svn.plone.org/collective/Collage/tags/1.0-final

  • Added a search text field in existing_items to find items in large sites. Thanks to Silvio Tomatis for the patch. This closes ticket http://plone.org/products/collage/issues/12. [zegor]

  • Renamed manage_page to compose_page to avoid ZMI filtering access problem [zegor]

  • Added borders on manage_page to distinct rows, columns and items [zegor]

  • Added “portlets” views [zegor]

  • Rows, Colums and Aliases not indexed in portal_catalog [zegor]

  • Do not display Aliases with insufficient privileges [zegor]

  • Made the Collection item size matter, and added a More… button [regebro]

  • Added content views for ATLink, ATFile and ATNewsItem [zegor]

  • Fixed some i18n problems Added English and French po files Resynchronized po files with pot [zegor]

  • Do not display share and properties tabs with Plone 3.0 [zegor]

  • Added .metadata to cache icons [zegor]

  • Added delete-object view method to avoid redirection to confirmation_form [zegor]

  • Refactored codebase

    Moved code out of ./browser/browser.py into separate files.

    New directory structure:

    ./browser/viewlets viewlet templates ./browser/views content view templates ./browser/templates collage ui templates

    Zope 3 configuration files:

    configuration.zcml collage ui and functionality views.zcml content views actions.zcml ui actions (insert, split etc.) viewlets.zcml ui configuration

    [malthe]

  • Nested headings properly

    Lets have a ‘safe’ structure: <h1> title of the collage <h2> could be a row heading and / or object item http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/#tech-logical-headings

    [pelle]

  • Added HISTORY file

    Lets use this file again to log changes…

    [pelle]

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

Products.Collage-1.2b3.tar.gz (59.9 kB view hashes)

Uploaded Source

Built Distribution

Products.Collage-1.2b3-py2.4.egg (141.8 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