¿Cuál es la diferencia entre addBinary () y PublishBinary () en XSLT CT?

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

  •  28-10-2019
  •  | 
  •  

Pregunta

He podido publicar binarios en una plantilla de componente XSLT (CT) haciendo referencia al espacio de nombres tcmscriptassistant (xmlns: tcmse = "http://www.tridion.com/contentmanager/5.1/tcmscriptassistant") y utilizando lo siguiente:

<h2>PublishBinary()</h2>
    <xsl:element name="a">
        <xsl:attribute name="href">
            <xsl:value-of select="tcmse:PublishBinary(string(./@xlink:href))" />
        </xsl:attribute>
            <xsl:value-of select="./@xlink:title" />
    </xsl:element>

Recientemente probé addbinary:

<h2>AddBinary() with webdav</h2>
    <xsl:element name="a">
        <xsl:attribute name="href">
        <xsl:value-of select="tcmse:AddBinary(string(./@xlink:href), '/webdav/040 CreateandBreak/Root/Media/Image', 'some_variant')" />
        </xsl:attribute>
            <xsl:value-of select="./@xlink:title" />
    </xsl:element>

El marcado resultante para ambos:

<h2>PublishBinary()</h2>
<a href="/Media/buddy_tcm7-274.jpg">buddy</a>
<h2>AddBinary() with webdav</h2>
<a href="/Media/Image/buddy.jpg">buddy</a>

Puedo ver addbinary usado una carpeta diferente (grupo de estructura) según lo dispuesto en el segundo parámetro.

¿Entré en el tercer parámetro para la variantid de cadena incorrecta? No estoy seguro de si debería ver su texto en el nombre .jpg.

¿Alguna otra diferencia entre Publishbinary y AddBinary, especialmente cuando se usa CTS XSLT?

Estoy tratando de entender si uno debe usarse sobre el otro.

Para una aclaración, creo que este es el modelo de objeto Tridion AddBinary bajo la clase TCMScriptassistant (no Tom.net). Estoy seguro de que XSLT CTS seguirá siendo compatible, pero haré un seguimiento con una pregunta diferente sobre mejores formas de manejar binarios, posiblemente en plantillas modulares.

Otra información: - El esquema SP1 Tridion 2011 tiene enlaces al componente multimedia integrado en la página con XSLT CT para hacer presentaciones de componentes "estáticos"

¿Fue útil?

Solución

AddBinary () es el método preferido. Se introdujo con R5.3, creo. Nos dio la opción de hacer múltiples versiones (variantes) de binarios y colocarlas en SGS específicos. La razón por la que no ve la ID de variante en el nombre del archivo es que se usa como metadatos en el corredor para recuperar (o enlace) variaciones específicas de un componentes multimedia. Si observa la API Tom.net, verá parámetros adicionales para cosas como Variant Prefix (que se convertirá en parte del nombre del archivo).

En realidad, puede tener problemas si utiliza ambas técnicas en su código. Sugiero encarecidamente que piense en PublishBinary () como un "solo para la compatibilidad hacia atrás", y use el método más nuevo.

Feliz codificación

Chris

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top