=================
plone.app.theming
=================
Einführung
==========
`plone.app.theming`_ integriert den :doc:`../diazo/index`-XSLT-Proxy in Plone. Einige Vorteile von ``plone.app.theming`` sind:
.. _`plone.app.theming`: http://pypi.python.org/pypi/plone.app.theming/
- Web-Designer müssen kein Vorwissen in bezug auf Plone und Python mitbringen;
- Standardbibliotheken und -werkzeuge können verwendet werden;
- Auch eine bereits existierende Webgestaltung, z.B. von `Open Source Web Design`_, kann einfach verwendet werden.
.. _`Open Source Web Design`: http://www.oswd.org/
.. figure:: diazo-setup.png
:alt: Diazo-Setup
Im Vergleich zu :doc:`../deliverance/index` weist ``plone.app.theming`` folgende Unterschiede auf:
- Es wird nur das XSLT-Subset von Deliverance verwendet.
- Die Antwortzeiten von Diazo sind schneller, da nicht erst zur Laufzeit eine XSLT-Datei kompiliert wird.
- Es gibt nur XPath- und CSS3-Selektoren:
+----------------------------------------+--------------------------------+
| Diazo | Deliverance |
+========================================+================================+
| ``replace`` | ``replace`` |
+----------------------------------------+--------------------------------+
| ``copy`` | ``replace`` + Kindselektortyp |
+----------------------------------------+--------------------------------+
| ``before`` | ``prepend`` |
+----------------------------------------+--------------------------------+
| ``after`` | ``append`` |
+----------------------------------------+--------------------------------+
| ``prepend`` | ``prepend`` + Kindselektortyp |
+----------------------------------------+--------------------------------+
| ``prepend`` + XPATH + ``@id`` | ``prepend`` + Kindselektortyp |
| | |
| oder | |
| | |
| ``prepend`` + XPATH + ``@class`` | |
+----------------------------------------+--------------------------------+
| ``append`` | ``append`` + Kindselektortyp |
+----------------------------------------+--------------------------------+
| ``drop`` | ``drop`` |
+----------------------------------------+--------------------------------+
Bedingte Regeln
===============
- Es lassen sich Bedingungen für die Aktionen angeben, z.B.::
- Darüber hinaus kann eine Bedingung auch auf mehrere Aktionen angewendet werden, z.B.::
Und auch verschachtelte Bedingungen sind mögich, z.B.::
oder::
- Auch mehrere ``Themes`` lassen sich durch Bedingungen unterscheiden, z.B.::
oder::
- Es können auch Pfadbedingungen angegeben werden, z.B.::
Endet die Pfadbedingung mit ``/``, so wird die Regel nur angewendet, wenn die URL an dieser Stelle endet, also z.B.::
wird auf ``/Plone/news`` oder ``/Plone/news/`` angewendet, nicht jedoch auf ``/Plone/news/news1.html``.
- Auch externe Inhalte können eingebunden werden, z.B. in einem Mashup::
Reihenfolge
===========
Die Regeln werden nicht nacheinander abgearbeitet sondern in folgender festgelegter Reihenfolge:
#. ````
#. ````
#. ````
#. ````
#. ````
Dies führt meines Erachtens zu einer unnötigen Komplexität bei der Analyse, welche Regeln in welcher Reihenfolge abgearbeitet werden.
- Zudem bringt Diazo keine Debug-Konsole mit, wodurch diese Analyse deutlich erschwert wird.
.. toctree::
:titlesonly:
:maxdepth: 1
:hidden:
installation
theme-transformation
transformationsregeln
diazotheme-produkt
migration-von-collective.xdv