Products.CompositePack

HomePage: http://pypi.python.org/pypi/Products.CompositePack

Author: Godefroid Chappelle

Download: https://pypi.python.org/packages/source/P/Products.CompositePack/Products.CompositePack-1.2a1.tar.gz

        CompositePack is a product that allows the Plone Manager to build composite
pages by manually aggregating archetype content from his site.

Composition of content is made through a pseudo WYSIWYG user interface : the
design view.  A composite page has a layout which defines its structure.
Composite elements are displayed through viewlets. 

Both layouts and viewlets are acquired from the skin, which implies they are
customizable.

Layouts and viewlets are registered through the composite_tool in ZMI (see
below how to register them).

Plone versions supported
========================

    3.3

Products required 
================= 

CompositePage 1.0
    http://pypi.python.org/pypi/Products.CompositePage


Design view 
=========== 

The design view supports Firefox, Mozilla and IE6.
The design view allows the user to manipulate the composite elements : add,
move, delete or change their properties.

The design view allows you to add pieces of content to the slots defined in the
layout. In a slot, each location where a composite element can be added
displays a menu labeled 'add item'. When you click it, you get options :
'Content', 'Title' and 'HTML'. You choose 'Content' to select existing content
from your Plone site. You choose 'Title' or 'HTML' to add decorating content
specific to the instance (see details below). 

When choosing 'Content', you get a popup window wherein you can select the
piece of content that you want to add to this slot.  This window is a kupu
drawer. It only shows instance of "composable" portal types (see below for
setting up composables).  You browse your site until you have found the piece
of content you want to display.  When you click the 'ok' button, the composite
element is added to the composite page.  It is displayed through its default
viewlet.  Another viewlet can be selected later (see below).

Once added, the composite element can be moved by drag and drop from one slot
to another : drag and drop the icon associated with the composite element to
one of the 'add item' bars.

Each composite element has its own 'edit item' menu. It has the following
options : 'Edit', 'Delete' and 'Select viewlet'.

'Edit' sends you to the edit screen of the content pointed at by the element.

'Delete' removes the composite element (not the associated content).

'Select viewlet' lists the available viewlets registered for the content type
of the composite element. Choose one of them to get your content displayed
differently.

Layouts 
=======

A layout is a template that defines the display view. Similar to the template
of a normal view, a layout includes structural HTML and data from the composite
instance. It also includes slots. Slots define the places where content can be
added. The slots are named.

Layouts needs to be registered for composite content types. This happens through
the composite tool. 

At instantiation time, a layout is setup on a composite instance : the layout
registered as default for the content type.

Another layout can be chosen later if needed. This is done through the layout
menu of the design view. The menu proposes the layouts registered for the
content type.

When changing the layout, if the old and new layouts share slot names, the
content placed in a slot of a given name in the old layout will be shown in the
corresponding slot of the new layout.  Content items placed in slots of the old
layout that do not have corresponding names in the new layout are hidden, not
deleted.  Switching back to a layout will show items in their original
location. Hidden slots and composite elements (inaccessible through design
view) can be deleted through ZMI.


Viewlets
========

Viewlets are templates (python scripts) that produce HTML excerpts.
CompositePack does what is needed to get a normal development situation : the
'here' (or 'context') variables are bound correctly to the content item that is
displayed through the viewlet.

Viewlets are mapped to content types : this allows to define different viewlets
for different types (see below how to register viewlets). For instance, image
conte