Как преобразовать блок контента из плона, вставляемого в тему диазо
Я использую диазо (в настоящее время plone.app.theming 1.0b1-r48205) с Plone 4.1. Я хочу использовать именно HTML-код Plone для виджета поиска, за исключением того, что я хочу заменить <input>
элемент, используемый для кнопки поиска в виджете поиска с <button>
, Диазо-документы, кажется, предлагают вам сделать это.
В моей теме HTML-файл у меня есть пустой <div id="portal-searchbox"></div>
, В моем rules.xml у меня есть следующее:
<rules if-content="$enabled">
<replace css:theme="div#portal-searchbox">
<xsl:apply-templates css:select="div#portal-searchbox" />
</replace>
<xsl:template css:match="div#portal-searchbox input.searchButton">
<button type="submit"><img src="images/search.png" alt="Search" /></button>
</xsl:template>
</rules>
Я пробовал многочисленные варианты этого, но безуспешно. Любая помощь приветствуется.
1 ответ
Итак, следующее работает. Причина, по которой он не работал раньше, заключалась в том, <xsl:template>
не было в теге правил корневого уровня (там есть ошибка документации). <xsl:template>
должен быть в теге правил корневого уровня, потому что нет способа применить условия правила к <xsl:template>
В настоящее время.
<xsl:template css:match="div#portal-searchbox input.searchButton">
<button type="submit"><img src="images/search.png" alt="Search" /></button>
</xsl:template>
<replace css:theme="div#portal-searchbox" css:content="div#portal-searchbox"/>
Обновление: я добавил поддержку <replace content="...">
Диазо, так встроенный <xsl:template>
Это считается устаревшим. Вместо этого используйте:
<replace css:content="div#portal-searchbox input.searchButton">
<button type="submit"><img src="images/search.png" alt="Search" /></button>
</replace>
<replace css:theme="div#portal-searchbox" css:content="div#portal-searchbox"/>
Документация на http://diazo.org/advanced.html