Diazo — условно добавить класс к элементу темы

Мне нужно добавить класс к элементу из темы, только если выполняются определенные условия. Я пробовал это решение, с поправкой на Diazo, заменив prepend с before:

<before css:theme=".main" if-content="not(//*[@id='portal-column-two'])"><xsl:attribute name="class"><xsl:value-of select="//*[@class='main']/@class"/> full</xsl:attribute></before>

но я получаю следующую ошибку:

XSLTApplyError: xsl:attribute: Cannot add attributes to an element if children have been already added to the element.

Я получаю эту ошибку, даже когда удаляю все остальные правила, так что есть только правило <theme> и правило <before>.

Как я могу добавить класс к элементу темы только тогда, когда в содержимом нет элемента #portal-column-two?


person Ross Patterson    schedule 12.04.2012    source источник


Ответы (1)


Заменой Diazo для prepend css:theme является before css:theme-children, а не before css:theme. Ваш пример работает с этим измененным.

person Dan Jacka    schedule 07.11.2012