Как включить редактирование встроенных полей в SiteEdit при использовании TBS XSLT?
Я работаю над SDL Tridion 2011 SP1 с посредником XSLT из SDL Tridion World и SiteEdit 2009 SP3. Я создал XSLT TBB и включил встроенное редактирование для шаблона компонента, включил SiteEdit в шаблоне страницы. Я создал страницу, используя это и опубликовал ее.
Но SiteEdit не включен для каждого поля. Когда я посмотрел на источник предварительного просмотра страницы, у него был только один тег span для всего компонента. Но обычно, если SiteEdit включен для компонента, мы должны иметь тег span для каждого поля.
Я застрял в этой точке. Я создал XSLT TBB с помощью посредника XSLT.
Кто-нибудь может подсказать, можем ли мы включить SiteEdit в составной шаблон с использованием XSLT TBB? Если это можно сделать, предложите мне шаги, чтобы сделать это.
2 ответа
Если вы используете XSLT TBB с XSLT Mediator, вам нужно будет вручную обернуть поля, которые вы хотите включить для SiteEdit, чтобы они отображались в выходных данных вашего шаблона. Попробуйте обернуть свои поля XSLT, используя код, подобный следующему:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xsl:for-each select="//*[local-name()='paragraph']">
<div>
<tcdl:ComponentField name="paragraph[{position() -1}].text" index="0">
<xsl:apply-templates select="./*[local-name()='text']"/>
</tcdl:ComponentField>
</div>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Этот код перебирает каждое встроенное поле абзаца, выводит значение текстовых полей и переносит его в соответствующий синтаксис SiteEdit TCDL.
Это зависит от шаблонов (XSLT, DWT, VBscript или любой другой технологии, которую вы используете), чтобы генерировать элемент вокруг каждого поля.
<span>
<!-- Start SiteEdit Component Field: { ... } -->
This is the value of the field
</span>
Обычно вы позвоните RenderComponentField
в вашем DWT, который пометит каждое поле с <tcdl:ComponentField>
элемент. Этот элемент затем переводится в правильный элемент (span
в приведенном выше примере) с помощью "Включить встроенное редактирование" TBB.
Поэтому, если вы генерируете HTML из своего XSLT, убедитесь, что вы либо:
- вызов
RenderComponentField
для поля ИЛИ - выход
<tcdl:ComponentField
себя или - выведите оберточный элемент и
<!-- Start SiteEdit Component Field
сам