2012-04-18 8 views
6

Razorテンプレートを使用してTridionからバイナリ(PDFファイル)を発行する際に問題が発生しています。Tridion Razorテンプレート使用時にPDFを公開する

私は、単一のリンクされたマルチメディアスキーマで「ダイナミックコンポーネントとして公開」に設定されたコンポーネントテンプレートを持っています。

私はRazor Mediator eXtensionを使用していますが、コンポーネントテンプレートが含まれている2つのテンプレート:ビルディング・ブロック

  1. Aレイザーテンプレートその出力いくつかのHTMLおよびマルチメディアコンポーネントでのバイナリへのリンク。
  2. デフォルトの終了アクションTBBは、以下を含む:
    • パッケージ
    • でバイナリ
    • リンクリゾルバのHTML
から
  • ターゲットグループパーソナ
  • クリーンナップテンプレート
  • 変換XMLを公開

    T私が午前問題を enter image description here

    :これは正しくバイナリリンクを解決するために表示され、次の動的コンポーネントのプレゼンテーションを生成 enter image description here

    :彼カミソリテンプレートは、次のコードを(私は少しこれを簡略化している)が含まれバイナリ自体がパッケージに追加されることはなく、公開されないということです。

    Razor MediatorはTridion.ContentManager.configファイルに 'extractBinaries'設定を持っているので、バイナリをメディエータがパッケージに追加する必要があります。私はextractBinaries設定が 'true'に設定されていることを確認しましたが、バイナリはパッケージに追加されていません(処理中のマルチメディアコンポーネントはパッケージにtridion/componentとしてパッケージされています)。

    この機能が利用可能で、Razor Mediatorで作業していることを知っている人はいませんか?私はRazor Mediatorがリンクコードが特定のフォーマットであることを期待していると思われますが、documentationではこれで何も見つかりません。

    私も(レイザーテンプレート以下)TBBコンポーネントテンプレートに「HTMLからの抽出バイナリ」を追加しようとしているが、私は次のエラーを取得する: を「アイテム出力はTCMURIは、指定されたプロパティを持っていなければなりません」。 これは、Razor Mediatorがパッケージに「出力」アイテムを追加する方法によるものと思われます。

    バイナリがパッケージに追加されていることを確認するために新しいTBBを書くことができましたが、その機能が既にRazor Mediatorで利用可能である場合は、これを避けることをお勧めします。

    ありがとうございます。

    P.S.画像の謝罪。 Stackoverflowはコードを正しくフォーマットしたくありませんでした。

  • +0

    http://stackoverflow.com/editing-help – SLaks

    +0

    SLacks - あなたのリンクによれば、問題は "マークダウンとHTMLはコードブロック内で無視される"と思っています。おかげで、Jon –

    答えて

    7

    残念ながら、Razor Mediatorは現在、タグに入っているときにPDFバイナリをパッケージに追加していないため、バージョン1.3が世話をしているというかなり良い気持ちがあるのですが(Publish Binaries TBBでは取り上げられません)これの ;)。

    その間、「未解決のバイナリ依存関係を追加する」タイプのTBBを使用することができます。私は現時点でそれを手にすることはできませんが、必要がある場合は私にお知らせください。私は今夜後にコードを投稿します。

    EDIT パッケージに追加されていないという私の声明をキャンセルすると、私は別のシナリオを考えていました。

    代わりに以下のことを試してみてください。

    <a href="@Component.ID">@Component.Metadata.title</a> 
    
    +0

    ありがとうアレックス。私は機能がそこにあると思った - 私は構文を知らなかった。私はオフィスに戻って、アップデートを投稿するとすぐに試してみます。 –

    +0

    こんにちはアレックス。これに関するあなたの応答の多くのありがとう。私はそれをテストしたところで、あなたが提案する構文を使用すると、PDFコンポーネントをパッケージに追加して公開するように見えます。しかし、これはコンポーネントのtcmIdをファイル名に追加しないという点で別の問題を引き起こします。同じファイル名を持つ2つのPDF(Tridion内の異なるフォルダに含まれています)が公開されている場合にエラーが発生すると、失敗が公開されます。私のサイトには何千ものPDFがあるので、別のTBBを使用しなければならない可能性があります。どうもありがとう。 –

    0

    私はRazor Mediatorを使用していませんが、Default Finish ActionsまたはPublish Binaries in Package TBBをテンプレートに追加しようとしましたか?

    +0

    こんにちはクリス。コンポーネントテンプレートには、「既定の完了アクション」TBB(「パブリッシュバイナリパッケージTBB」が含まれています)が既に含まれています。問題は、バイナリがパッケージに公開されることがないことです。ありがとう、ジョン –

    2

    これが私の仕事:

    @{ 
        var item = TridionHelper.Package.CreateMultimediaItem(Component.ID); 
        TridionHelper.Package.PushItem("CurrentMultimedia", item); 
    } 
    
    続く

    、PublishBinariesInPackageによってもちろん、としてあなたもおそらく、同様の方法でエンジンに到達することができますが、直接AddBinaryも機能します。

    関連する問題