Beschreibung zu CompositePack
CompositePack ist ein Plone Product, das dem Plone Manager erlaubt aus Bausteinen zusammengesetzte Seiten aufzubauen, indem Archetype basierte Inhalte aus der Plone Site ausgewählt und eingefügt werden.
Die Komposition der Inhalte wird mit einem Pseudo-WYSIWYG Interface durchgeführt: dem Design View. Eine Composite Page besitzt ein Layout, das die Struktur festlegt. Die Composite Elemente werden mit sogenannten Viewlets dargestellt.
Sowohl Layouts als auch Viewlets werden aus einer Skin übernommen, also können diese individuell angepasst werden.
Layouts und Viewlets werden mit dem "composite_tool" im ZMI angemeldet (Der Registrierungsprozess wird weiter unten beschrieben).
Es werden die folgenden Plone Versionen unterstützt :
- 2.0.5
- 2.1.1 ( 2.1.0 möglich - nicht getestet!)
- 2.1.2
Zusätzlich benötigte (Zope) Produkte
CompositePage 0.2 http://hathawaymix.org/Software/CompositePage/CompositePage-0.2.tar.gz
für Plone 2.0.5 wird zusätzlich benötigt
- kupu 1.3.3 oder höher
- Archetypes 1.3.5
Der Design View
Der Design View unterstützt Firefox, Mozilla und IE6. Der Design View ermöglicht dem Anwender Composite Elemente zu bearbeiten: hinzufügen, bewegen, löschen und das Ändern von Eigenschaften.
Mit dem Design View können Inhalte in sogenannte Slots eingefügt werden, die vorher im Layout definiert wurden. In einem Slot, zeigt jede Stelle, an der ein Composite Element eingefügt werden kann, ein Menü mit dem Titel add item
an. Das aufgeklappte Menü enthält die Optionen: Content
, Title
und HTML
. Mit Content
werden existierende Inhalte aus der Plone Site eingefügt. Mit der Auswahl von Title
oder HTML
können zusätzlich individuelle Texte oder HTML-Design Fragmente hinzugefügt werden, die nur innerhalb des Composite Elements existieren (zusätzliche Details weiter unten).
Wird Content
ausgewählt, öffnet sich ein Popup Fenster mit dem ein existierendes Element ausgewählt werden kann, um es an dieser Stelle in den Slot einzufügen. Das Fenster ist als Kupu Dialog ausgeführt. Es zeigt ausschließlich Elemente mit einem "portal type" an, der als "composable" definiert wurde (siehe weiter unten zur Definition von "composables"). Man kann durch den Inhalt der Site browsen bis der gewünschte Inhalt gefunden ist. Mit einem Klick auf den ok
Button, wird das Composite Element zur Composite Page hinzugefügt. Es wird mit dem als Standard voreingestellten Viewlet angezeigt. Alternative Viewlets können später ausgewählt werden (siehe unten).
Einmal hinzugefügt, kann das Composite Element mit Drag and Drop von einem Slot zum anderen bewegt werden: dazu wird das zum Composite Element gehörende Icon-Symbol mit der Maus in einen der add item
Balken gezogen. Die Seite wird dann mit der neuen Anordnung neu aufgebaut.
Jedes Composite Element hat sein eigenes edit item
Menu. Das Menü enthält die folgenden Optionen: Edit
, Delete
und Select viewlet
.
Edit
öffnet den Bearbeiten-Dialog des Inhalts, der mit dem Composite Element verknüpft ist.
Delete
entfernt das Composite Element (jedoch nicht den extern verknüpften Inhalt).
Select viewlet
zeigt eine Liste der zur Anzeige der für den Inhaltstyps des Composite Elements registrierten Viewlets an. Jedes Viewlet kann den Inhalt auf seine eigene Art und Weise anzeigen.
Layouts
Ein Layout ist ein Template, das die Struktur und das Design für den Display View festlegt. Ähnlich wie Templates für eine normale Ansicht, enthält ein Layout Strukturen in Form von HTML und Daten aus dem Composite Objekt. Es enthält auch die Slots. Slots definieren die Bereiche in denen Inhalte hinzugefügt werden können. Den Slots sind eindeutige Namen zugeordnet.
Layouts müssen individuell für jeden Composite Inhalt Typ registriert werden. Dies erfolgt mit dem "Composite Tool" im ZMI.
Im Moment der Erzeugung eines neuen Plone Objekts vom Typ Composite Page wird der Instanz des Objekts ein erstes Layout zugeordnet: das Layout, das als Standard für diesen Content Typ definiert wurde.
Ein anderes Layout kann bei Bedarf später noch ausgewählt werden. Die Auswahl erfolgt mit dem Layout-Menü im Design View. Das Menü zeigt ausschließlich die für diesen Content Typ verfügbaren Layouts an.
Wenn das Layout geändert wird, und das alte und das neue Layout gemeinsame Slot-Namen besitzen, wird der entsprechende Inhalt des alten Layouts auch im gleichnamigen Slot des neuen Layouts angezeigt. Inhalte eines Slots des alten Layouts, für den kein entsprechender Slot im neuen Layout existiert, werden verborgen, nicht gelöscht. Wird das bisherige Layout erneut ausgewählt, erscheinen die Inhalte wieder an der gewohnten Stelle. Verborgene Slots und Composite Elemente (sollten diese nicht mehr über den Design View erreichbar sein) können bei Bedarf über das ZMI gelöscht werden.
Viewlets
Viewlets sind Templates (Python Scripts), die gültiges HTML aus Objektinhalten erzeugen. CompositePack kümmert sich um alles, was nötig ist um die gewohnte Entwicklungsvoraussetzung bereitzustellen: die here
(oder context
) Variablen werden korrekt an das Inhalts-Objekt gebunden, das vom Composite Element dargestellt werden soll.
Viewlets sind spezifischen Content Typen zugeordnet: Dies ermöglicht es, unterschiedliche Viewlets für unterschiedliche Inhalts-Typen zu verwenden (siehe weiter unten wie Viewlets registriert werden). Bilder als Content Typ benötigen zum Beispiel andere Eigenschaften als rein textorientierte Inhalte.
Titel
Titel sind Composite Elemente, die verwendet werden, um einzelne Textzeilen mit festgelegten Stilen in den Inhalt einzufügen.
Im Design View im Menü add item
den Punkt Title
anwählen. Es erscheint ein Popup Fenster mit der Eingabeaufforderung für den gewünschten Titel. Es wird ein Composite Element erzeugt, das den Titel mit dem hierfür registrierten Standard Viewlet anzeigt.
Um den Titel zu bearbeiten, wählt man die Edit
Option im edit item
Menu.
HTML Fragmente
HTML-Fragmente sind Composite Elemente die es erlauben individuelle HTML-basierte Bausteine in die Composite Page einzufügen.
Im Design View add item
und dann HTML
auswählen. Dies fügt ein leeres HTML-Fragment ein. Mit der Edit
Option des edit item
Menüs kann der Inhalt des Fragments bearbeitet werden.
Composables einrichten
- Gehe zum "composite_tool" im Plone root des ZMI (ggf. \manage zur URL der Site hinzufügen)
- Dort das "Composables" Register auswählen
- Den/die gewünschten Content Type(n), der/die der Liste Types hinzugefügt werden soll(en), auswählen (Mehrfachauswahl mit Control-Klick (Windows), Befehl-Klick (MacOS)
- Select Button anklicken
- Es ist nötig, den Browser Cache zu leeren damit der Javascript Code, der vom Kupu Dialog verwendet wird, neu geladen wird.
Ein Viewlet registrieren
- Dazu wird ein neues Page Template (oder Python Script) erzeugt, das gültigen HTML-Code aus den Inhalten des Objekts erzeugt
- Gehe zum "composite_tool" im Plone root des ZMI (ggf. \manage zur URL der Site hinzufügen)
- Innerhalb des Composite Tool in den "viewlets" Ordner bewegen und ein neues CompositePack Viewlet mit dem Button am oberen Ende der Seite erzeugen.
Das CompositePack Viewlet besitzt drei Felder:
- "Short Name" – (Id) wie jedes Objekt
- "Title" ist der Text, der im
select viewlet
Bereich desedit item
Menüs angezeigt wird. - "Skin Method" – ist der Name (Id) der Page Template Datei, die zuvor erzeugt wurde.
Nun ist das Viewlet registriert – es muss nur noch den Content Typen zugeordnet werden, für die es verwendet werden soll.
- "Short Name" – (Id) wie jedes Objekt
- Im Viewlet das
Composables
Register auswählen(Mit einigen älteren fehlerhaften Archetypes Versionen muss der Viewlets Ordner ausgewählt werden, wenn ein neues Viewlet hinzugefügt wurde.)
- Wenn das Viewlet mit allen Content Typen verwendet werden soll, "(Default Setup)" auswählen.
- Soll das Viewlet nur für ausgewählte Content Typen zur Verfügung stehen, werden diese in der darunter angezeigten Liste ausgewählt.
- Select Button anklicken
Composites einrichten
- Gehe zum "composite_tool" im Plone root des ZMI (ggf. \manage zur URL der Site hinzufügen)
- Dort das "Composites" Register auswählen
- Den Typ auswählen, der in die Liste der Typen aufgenommen werden soll (Mehrfachauswahl mit Control-Klick (Windows), Befehl-Klick (MacOS).
- Select Button anklicken
Layouts können nun den registrierten Typen zugeordnet werden
Ein Layout registrieren
- Erzeuge ein Page Template, das die Syntax von TALES Slot Ausdrücken verwendet (einfach einen Blick auf die existierenden Layouts werfen, um diese zu verstehen). Die Templates sollten auf dem Plone main_template basieren.
- Gehe zum "composite_tool" im Plone root des ZMI (ggf. \manage zur URL der Site hinzufügen)
- Innerhalb des Composite Tool in den "layouts" Ordner bewegen und ein neues CompositePack Layout mit dem Button am oberen Ende der Seite erzeugen.
Das CompositePack Layout besitzt drei Felder:
- "Short Name" – (Id) wie jedes Objekt
- "Title" ist der Text, der im dropdown widget Bereich zur Layout-Auswahl angezeigt wird.
- "Skin Method" – ist der Name (Id) der Page Template Datei, die zuvor erzeugt wurde.
- Im Viewlet das
Composites
Register auswählen(Mit einigen älteren fehlerhaften Archetypes Versionen muss der Viewlets Ordner ausgewählt werden, wenn ein neues Viewlet hinzugefügt wurde.)
- Aus den Composites, die in der Typen-Liste angezeigt werden, die Inhalts-Typen auswählen mit denen dieses Layout verwendet werden soll.
- Select Button anklicken
Das "Customisation Policy" Skript verwenden
Als Alternative zur individuellen Anpassung des CompositePack Produkts über das Webinterface mit dem Composite Tool steht das Schreiben eines Skripts zur automatisierten Anpassung aller Eigenschaften zur Verfügung. Diese Vorgehensweise stellt sicher, dass alle Anpassungen auch bei einer Neuinstallation oder einem Update von CompositePack erhalten bleiben.
Sobald ein Skript mit dem Namen compositepack-customisation-policy.py
in einem der Skin-Ordner verfügbar ist, wenn CompositePack installiert wird, wird das Script automatisch als Teil der Installation ausgeführt. Ein Beispiel-Skript mit dem Namen sample-compositepack-customisation-policy.py
ist im compositepack Skin Odner verfügbar. Eine Kopie dieser Datei kann in compositepack-customisation-policy.py
umbenannt werden und an die Anforderungen des spezifischen Systems angepasst werden.