¿Cómo habilito la edición de campos en línea en SiteEdit cuando uso un TBB XSLT?

StackOverflow https://stackoverflow.com//questions/9667640

  •  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.

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top