テーマが設定されたDiazoを使用して、bodyタグにクラスを追加するにはどうすればよいでしょうか。if-content
存在するかどうかを確認するために使用しportal-column-two
、これに応じてクラスを body タグに入れます。
1つの解決策は次のとおりです。
<replace theme="/html/body/@class">
<xsl:attribute name="class"><xsl:copy-of select="." /> three_col</xsl:attribute>
</replace>
ここで説明されています: notheme で diazo を使用して body タグにクラスを追加しますが、notheme が設定されている場合にのみ機能します。
では、簡単な追加の css クラスをその場で body タグに入れるにはどうすればよいでしょうか?
編集: これは、テーマと Plone (plone.app.theming) で純粋な Diazo で動作します:
<before theme-children="/html/body"><xsl:attribute name="class"><xsl:value-of select="/html/body/@class" /> three_col</xsl:attribute>
</before>
そして条件に基づいて:
<before theme-children="/html/body" css:if-content="#portal-column-two">
<xsl:attribute name="class"><xsl:value-of select="/html/body/@class" /> three_col</xsl:attribute>
</before>
<before theme-children="/html/body" css:if-not-content="#portal-column-two">
<xsl:attribute name="class"><xsl:value-of select="/html/body/@class" /> two_col</xsl:attribute>
</before>
私の最終的な解決策は次のとおりです。