TcmScriptAssistant名前空間(xmlns:tcmse = "http://www.tridion.com/ContentManager/5.1/TcmScriptAssistant")を参照し、以下を使用することで、XSLTコンポーネントテンプレート(CT)でバイナリを公開できました。
<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>
2番目のパラメーターで提供されているように、addBinaryが別のフォルダー(構造グループ)を使用していることがわかります。
文字列variantIDの3番目のパラメータを間違って入力しましたか?.jpg名にそのテキストを表示する必要があるかどうかはわかりません。
特にXSLTCTを使用する場合、PublishBinaryとAddBinaryの間に他の違いはありますか?
私は、一方を他方の上に使用すべきかどうかを理解しようとしています。
明確にするために、これはTCMScriptAssistantクラス(TOM.NETではない)の下のTridionオブジェクトモデルAddBinaryであると思います。XSLT CTは引き続きサポートされると確信していますが、バイナリを処理するためのより良い方法について、おそらくモジュラーテンプレートで、別の質問をフォローアップします。
その他の情報:-Tridion 2011 SP1スキーマには、「静的」コンポーネントプレゼンテーションを作成するために、XSLTCTを使用してページに埋め込まれたマルチメディアコンポーネントへのリンクがあります。