=====================
Transformationsregeln
=====================
Regeln
======
::
````
definiert eine Reihe von Transformtionen.
Es werden sowohl `page classes`_ als auch `request/response matching`_ unterstützt.
.. _`page classes`: http://packages.python.org/Deliverance/configuration.html#page-classes
.. _`request/response matching`: http://packages.python.org/Deliverance/configuration.html#request-response-matching
Mit *page classes* lässt sich eine ``rule class`` einem bestimmten ``patch``, einer bestimmten ``domain`` oder einem bestimmten ``response-header`` zuweisen, z.B::
Weitere Informationen hierzu erhalten Sie im Abschnitt `match and page classe`_.
.. _`match and page classe`: http://packages.python.org/Deliverance/configuration.html#match-and-page-classes
``suppress-standard="true"``
Deliverance kommt üblicherweise mit einer Reihe von Aktionen, die das Kopieren des Titels oder eines Skripts erlauben. Diese sind::
Diese Regeln können unterbunden werden mit dem ``suppress-standard="true"``-Attribut.
Theme
=====
::
````
definiert das Thema, das Sie verwenden in Form einer URL.
Aktionen
========
````
ersetzt ein Element aus ``theme`` durch ein Element aus ``content``.
Die folgende Aktion ersetzt z.B. den Titel des *Themes* durch denjenigen aus Plone::
````
fügt ein Element aus ``content`` am Ende eines Elements aus ``theme`` ein.
Die folgende Aktion hängt z.B. die ``base``-Url aus Plone an die ``head``-Angaben des *Theme*. Dies gewährleistet, dass die Links aus Plone weiterhin funktionieren::
````
fügt ein Element aus ``content`` am Anfang eines Elements aus ``theme`` ein.
Die folgende Aktion stellt z.B. das Navigationsportlet aus Plone an den Anfang der rechten Spalte des Theme::
````
entfernt das Element aus dem ``content`` oder ``theme``.
Die folgende Aktion entfernt z.B. das User-Icon von Plone::
Selektoren
==========
CSS3-Selektoren
Jede Aktion beruht auf der Auswahl der Elemente des Theme und des Inhalts. Die einfachste Auswahl kann anhand von CSS-Selektoren erfolgen.
XPath
Es können auch XPath-Angaben als Selektoren verwendet werden. Diese beginnen immer mit ``/``.
Diese beiden Selektoren verweisen immer auf Elemente. Um spezifischere Aktionen ausführen zu können, wurden daher noch die folgenden Selektoren eingeführt:
``elements``
Der Standardselektor.
``children``
erlaubt, Regeln auf Kindelemente der ausgewählten Elemente anzuwenden. Hiermit lassen sich auch Aktionen auf Textinhalte anwenden.
``attributes``
Hiermit lassen sich Aktionen nur auf bestimmte Attribute der ausgewählten Elemente anwenden.
``tag``
Dieser Selektor erlaubt, Aktionen nur auf einen Tag, nicht jedoch auf dessen Kindelemente anzuwenden.
``||``-Operator
===============
Der ``||``-Operator nimmt die Ergebnisse des ersten Selektors, sofern vorhanden. Andernfalls nimmt er die Ergebnisse des zweiten Selektrors. So verwendet z.B. die folgende Aktion alle Elemente der ID ``content``; sind in ``content`` jedoch keine Elemente vorhanden, werden die Kindelemente von ```` verwendet::
content="#content || children:body"
``if-content``
==============
Alle Aktionen können das Attribut ``if-content`` erhalten womit die Aktion nur ausgeführt wird wenn die Bedingung erfüllt ist, z.B.::
Dem zu überprüfenden Wert kann auch ``not:`` vorangestellt werden.
Externe Inhalte einbinden – Mashup
==================================
Deliverance erlaubt auch das Einbinden von externen Quellen. Hierzu wird das ``href``-Attribut für eine Aktion verwendet, z.B.::
Somit ist Deliverance nicht nur für das Theming beliebiger Webanwendungen geeignet, es kann auch das Mashup verschiedener Inhalte von Webanwendungen übernehmen.