Sektionen
Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support Dokumentation docs Plone: Portlets in Diazo Regel filtern

Plone: Portlets in Diazo Regel filtern

Mit Diazo nur bestimmte Portlets ins Theme übernehmen. Hierfür kann man die erweiterten Möglichkeiten von Bedingungen in XPath und CSS3 nutzen.

Alle Portlets bis auf die Navigation ins Theme übernehmen

XPath-Variante

Um mit einer Regel alle Portlets zu greifen und sie ins Theme zu übernehmen, dabei aber das Navigationsportlet raus zu filtern, benötigen wir folgende xPath Anweisung.

//div[@id='portal-column-one']//dl[not(contains(@class,'portletNavigationTree'))]

Nachfolgend werden alle Portlets, ausser der Navigation,  aus der linken und rechten Spalte in die linke Spalte im Theme kopiert.

<!-- Columns -->
<after
content="//div[@id='portal-column-one']//dl[not(contains(@class,'portletNavigationTree'))]"
css:theme-children='#portal-column-one'
/>
<after
css:content-children="#portal-column-two"
css:theme-children="#portal-column-one"
/>

Benötigt man mehr als eine Bedingung in einem Ausdruck, hilft eine xPath-Anweisung der folgenden Art.

//div[@id='portal-column-two']//dl[not(contains(@class,'portletCarouselWrapper')) and not(contains(@class,'portletNews')) and not(contains(@class,'portletEvents'))]

CSS3-Variante

Das gleiche kann auch mit folgender CSS3-Anweisung erreicht werden

#portal-column-two .portlet:not(.portletNavigationTree)

Die vollständigen Regeln sehen wie folgt aus:


<after
css:content="#portal-column-two .portlet:not(.portletNavigationTree)"
css:theme-children='#portal-column-one'
/>

<after
css:content-children="#portal-column-two"
css:theme-children="#portal-column-one"
/>