5

Tridion で「グローバル」ロゴを管理する

たとえば、SDL Tridion を使用して Web サイト全体のロゴとそのテキスト要素を管理するには、(動的) コンポーネント テンプレートによってレンダリングされ、ページ テンプレートによって配置されるコンポーネント内に配置する必要があります。私の要件は次のとおりです。

  1. コンポーネントとしてのロゴ-- マルチメディア (mm) コンポーネントとしての画像と、オプションのコンテナ コンポーネント内のリンク、alt (つまり、「ホーム」)、およびその他のテキスト。
  2. ダイナミック コンポーネント プレゼンテーション (DCP) -- ロゴのマークアップ プレゼンテーションを管理し、すべてのページを公開することなく変更を公開する機能
  3. 共有可能 --下位の出版物で、テンプレートではなくコンポーネントでマルチメディアとテキストをローカライズする機能

作成者は、すべてのページにコンポーネント プレゼンテーション (CP) としてロゴを配置する必要はありませんが、ホームページだけにロゴ CP を配置することで動的リンクを提供できます。

RenderComponentPresentation()TCDL、またはTridion「非 CP」のタグ

この CP を使用しないアプローチでは、RenderComponentPresentation() またはTCDL タグが適切な「不可知論的」アプローチになると思います。どちらが優先されますか?

たとえば、私のテンプレートは次のように出力します。

<h3>By tridion: (ASP.NET) tag</h3>
<tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

<h3>By tcdl: tag</h3>
<tcdl:ComponentPresentation
    PageURI="@@Page.ID@@"
    type="Dynamic"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

<h3>by render component presentation</h3>
@@RenderComponentPresentation('tcm:7-1533','tcm:7-1532-32')@@

これらは、ファイル システム上で次のように変換されます。

<h3>By tridion: (ASP.NET) tag</h3>
<tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

<h3>By tcdl: tag</h3>
<tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

<h3>by render component presentation</h3>
<tridion:ComponentPresentation runat="server"
    PageURI="tcm:7-1535-64"
    ComponentURI="tcm:7-1533"
    TemplateURI="tcm:7-1532-32"/>

それぞれが配信側をレンダリングするため、ユーザーはブラウザーで正しい CP を確認できます。

質問:

  1. どのアプローチでも、PT から参照される DCP が、プレゼンテーション側で取得される不可知論的な形式で取得され、サイト全体の公開が回避されます。実際はページ上にないため、動的 CT (この場合は HTML フラグメント) を使用してロゴを公開する必要があります。何か不足していますか?

  2. RenderComponentPresentation() は、TCDL または特定のプレゼンテーション側の構文よりも優先されますか? <tridion:ComponentPresentation runat="server">代わりに実際に欲しい理由はありますか?

編集:Type="Dynamic"属性と値がありませんでした。また、RenderComponentPresentation が正しい CP 参照を作成していないと一瞬考えました。

4

1 に答える 1

4

基本的に、あなたはすでに最初の質問に自分で答えていると思いますが、テンプレートにどのように書き出すかは別として、そこに DCP があります。

私の好みは使用する@@RenderComponentPresentation('tcm:7-1533','tcm:7-1532-32')@@ことですが、実際にはハードコードされた TCMURI では使用しません。おそらく、マルチメディア コンポーネント TCMURI とそのテンプレート URI を構成コンポーネントや出版物メタデータなどから読み取る TBB を作成すると、テンプレートは次のようになります。

@@RenderComponentPresentation(${LogoUri}, ${LogoTemplateUri})@@

レイアウトに Dreamwever TBB を使用する場合は、これを好みで使用します。別のレイアウト方法を使用している場合、次善の策は TCDL タグを使用することです。実際、テンプレートのコードにとらわれないようにしてください。トリディオン制御コードを自分で書き出すことに戻るのは、別の方法でそこに到達できないときだけです。

于 2012-12-31T09:27:36.560 に答える