4

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を使用してページに埋め込まれたマルチメディアコンポーネントへのリンクがあります。

4

1 に答える 1

4

AddBinary()が推奨されるメソッドです。R5.3で導入されたと思います。バイナリの複数のバージョン(バリアント)を作成し、それらを特定のSGに配置するオプションが提供されました。ファイル名にバリアントIDが表示されない理由は、マルチメディアコンポーネントの特定のバリエーションを取得(またはリンク)するためにブローカーでメタデータとして使用されるためです。TOM.NET APIを見ると、バリアントプレフィックス(ファイル名の一部になります)などの追加のパラメーターが表示されます。

コードで両方の手法を使用すると、実際に問題が発生する可能性があります。PublishBinary()を「下位互換性のみ」と考え、新しいメソッドを使用することを強くお勧めします。

ハッピーコーディング

クリス

于 2012-02-20T22:15:13.870 に答える