¿Cómo habilito la edición de campos en línea en SiteEdit cuando uso un TBB XSLT?
-
12-12-2019 - |
Pregunta
Estoy trabajando en SDL Tridion 2011 SP1 con XSLT Mediator de SDL Tridion World y SiteEdit 2009 SP3.Creé XSLT TBB y habilité la edición en línea para la plantilla de componentes, habilité SiteEdit en la plantilla de página.Creé la página usando eso y la publiqué.
Pero SiteEdit no está habilitado para cada campo.Cuando miré la fuente de la vista previa de la página, solo tiene una etiqueta de extensión para todo el componente.Pero, por lo general, si SiteEdit está habilitado para el componente, deberíamos tener una etiqueta span para cada campo.
Estoy estancado en este punto.He creado XSLT TBB usando el mediador XSLT.
¿Alguien puede sugerir si podemos habilitar SiteEdit en una plantilla compuesta usando un XSLT TBB?Si se puede hacer, sugiérame los pasos para hacerlo.
Solución
Si está utilizando XSLT TBBS con el mediador XSLT, deberá envolver manualmente los campos que desea habilitar para SiteEdit para que aparezcan en la salida de su plantilla.Considere envolver sus campos con XSLT usando código similar a este:
<?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>
Este código se bucea a través de cada campo de párrafo incrustado, y emite el valor de los campos de texto, y lo envuelve con la sintaxis de TCDL del sitio apropiado.
Otros consejos
Depende de las plantillas (XSLT, DWT, VBscript o cualquier tecnología que utilice) generar un elemento alrededor de cada campo.
<span>
<!-- Start SiteEdit Component Field: { ... } -->
This is the value of the field
</span>
Normalmente llamarás RenderComponentField
en su DWT, que marcará cada campo con un <tcdl:ComponentField>
elemento.Este elemento luego se traduce al elemento correcto (un span
en el ejemplo anterior) mediante el TBB "Habilitar edición en línea".
Entonces, si genera el HTML desde su XSLT, asegúrese de:
- llamar
RenderComponentField
para el campo O - producción
<tcdl:ComponentField
usted mismo O - salida del elemento de envoltura y
<!-- Start SiteEdit Component Field
tú mismo