Direkt zum Inhalt | Direkt zur Navigation

Benutzerspezifische Werkzeuge

Sie sind hier: Startseite / Tech-Blog / Diazo: CSS Klasse per XSLT in body-Tag einfügen

Diazo: CSS Klasse per XSLT in body-Tag einfügen

Manchmal reichen die Möglichkeitenvon Diazo alleine nicht aus um zum Ziel zu gelangen. Im folgenden Beispiel möchte ich zeigen, wie man mit Hilfe von XSLT CSS Klassen, in Abhängigkeit des Vorhandenseins der Portletspalten von Plone, in das body-Tag einfügen kann.

Plone hat ein 3 Spaltenlayout, sofern rechts und links Portlets vorhanden sind. In einigen Bereichen möchte man aber z.B hin und wieder die rechte Spalte ausblenden um mehr Platz zu haben. Hat man jetzt ein fixes Grid-Layout so bleibt die rechte Spalte leer, die mittle Spalte dehnt sich aber nicht aus. Die Lösung kann eine CSS-Klasse im body-Tag sein, welche dann in den Stylesheets als Marker verwendet werden kann.

CSS-Klasse in body-Tag einfügen

<xsl:attribute name="class"><xsl:value-of select="/html/body/@class" /> three_col</xsl:attribute>

Bedingtes Einfügen

<before theme-children="/html/body" method="raw">
  <xsl:attribute name="class"><xsl:value-of select="/html/body/@class" /><xsl:if css:test="#portal-column-one"> col-one</xsl:if><xsl:if css:test="#portal-column-content"> col-content</xsl:if><xsl:if css:test="#portal-column-two"> col-two</xsl:if></xsl:attribute>
</before>

<drop css:theme="#portal-column-one" css:if-not-content="#portal-column-one" />
<drop css:theme="#portal-column-content" css:if-not-content="#portal-column-content" />
<drop css:theme="#portal-column-two" css:if-not-content="#portal-column-two" />
abgelegt unter: , ,