2012-02-20 2 views
4

私は、TcmScriptAssistant名前空間(xmlns:tcmse = "http://www.tridion.com/ContentManager/5.1/TcmScriptAssistant")を参照して、次のコードを使用してXSLTコンポーネントテンプレート(CT)にバイナリを公開することができました。 :XSLT CTのaddbinary()とpublishbinary()の違いは何ですか?

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

私はaddBinarを見ることができます2番目のパラメータで指定されている別のフォルダ(構造グループ)を使用しました。

String variantIDの3番目のパラメータを間違って入力しましたか?私が.jpg名でそのテキストを見なければならないかどうかはわかりません。

特にPublishBinaryとAddBinaryの違いは、特にXSLT CTを使用している場合ですか?

私はもう一方を使用すべきかどうかを理解しようとしています。

明確にするため、これはTCMScriptAssistantクラス(TOM.NETではなく)のTridionオブジェクトモデルAddBinaryだと思います。私はXSLT CTsがサポートされ続けると確信していますが、おそらくモジュラーテンプレートのバイナリを扱うためのより良い方法については別の質問をします。

その他の情報: - Tridionの2011 SP1のスキーマが

答えて

4

AddBinary(「静的」コンポーネントのプレゼンテーション)にするためにXSLT CTで ページに埋め込まれたマルチメディアコンポーネントへのリンクを持っている好ましい方法です。それはR5.3で導入されました。バイナリの複数のバージョン(バリアント)を作成し、特定のSGに配置するオプションがありました。ファイル名にバリアントIDが表示されないのは、マルチメディアコンポーネントの特定のバリエーションを取得(またはリンク)するためにBrokerのメタデータとして使用されるためです。 TOM.NET APIを見ると、バリアントプレフィックス(ファイル名の一部になります)などの追加パラメータが表示されます。

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

ハッピーコーディング

クリス

+0

パーフェクト、感謝します。将来のXSLT CTの作業と例でaddBinary()を使用します。私は、TOM.NETの他のaddBinary()メソッドが動作しなかったため(これはTCMScriptAssistantに該当するため、期待どおり)、どのAPIを使用したのか混乱しました。 –

関連する問題