В чем разница между addbinary () и publishbinary () в XSLT CT? - PullRequest
4 голосов
/ 21 февраля 2012

Мне удалось опубликовать двоичные файлы в шаблоне компонента XSLT (CT), обратившись к пространству имен TcmScriptAssistant (xmlns: tcmse = "http://www.tridion.com/ContentManager/5.1/TcmScriptAssistant") и используя следующее:

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

Я недавно пытался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>

Результирующая разметка для обоих:

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

Я вижу, что addBinary использовал другую папку (структурную группу), как указано во втором параметре.

Я неправильно ввел третий параметр для String variableID? Я не уверен, должен ли я видеть его текст в имени .jpg.

Любые другие различия между PublishBinary иAddBinary, особенно при использовании XSLT CT?

Я пытаюсь понять, следует ли использовать один поверх другого.

Для пояснения, я считаю, что это объектная модель Tridion AddBinaryпод классом TCMScriptAssistant (не TOM.NET). Я уверен, что CT XSLT останутся поддерживаемыми, но я задам другой вопрос о лучших способах обработки двоичных файлов, возможно, в модульных шаблонах.

Другая информация: - Схема Tridion 2011 SP1 содержит ссылки на мультимедийный компонент, встроенный в страницу с помощью XSLT CT, для создания «статических» презентаций компонента

1 Ответ

4 голосов
/ 21 февраля 2012

AddBinary () является предпочтительным методом.Это было введено с R5.3 я считаю.Это дало нам возможность создавать несколько версий (вариантов) двоичных файлов и размещать их в определенных SG.Причина, по которой вы не видите идентификатор варианта в имени файла, заключается в том, что он используется в качестве метаданных в брокере для извлечения (или ссылки на) конкретных вариантов мультимедийных компонентов.Если вы посмотрите на API TOM.NET, вы увидите дополнительные параметры для таких вещей, как вариантный префикс (который станет частью имени файла).

Вы можете столкнуться с проблемами, если будете использовать оба метода в своем коде,Я настоятельно рекомендую вам думать о PublishBinary () как о «только для обратной совместимости» и использовать более новый метод.

Счастливое кодирование

Крис

...