7

テーマが設定された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>

私の最終的な解決策は次のとおりです

4

1 に答える 1

2

@MrTango が使用するソリューションは、 https ://plone-theming-with-diazo.readthedocs.org/en/latest/snippets_diazo/recipes/index.html#add-css-class-depending-on-existing- で説明されています。ポータル列

于 2013-03-27T13:46:40.037 に答える