Tridion で「グローバル」ロゴを管理する
たとえば、SDL Tridion を使用して Web サイト全体のロゴとそのテキスト要素を管理するには、(動的) コンポーネント テンプレートによってレンダリングされ、ページ テンプレートによって配置されるコンポーネント内に配置する必要があります。私の要件は次のとおりです。
- コンポーネントとしてのロゴ-- マルチメディア (mm) コンポーネントとしての画像と、オプションのコンテナ コンポーネント内のリンク、alt (つまり、「ホーム」)、およびその他のテキスト。
- ダイナミック コンポーネント プレゼンテーション (DCP) -- ロゴのマークアップ プレゼンテーションを管理し、すべてのページを公開することなく変更を公開する機能
- 共有可能 --下位の出版物で、テンプレートではなくコンポーネントでマルチメディアとテキストをローカライズする機能
作成者は、すべてのページにコンポーネント プレゼンテーション (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 を確認できます。
質問:
どのアプローチでも、PT から参照される DCP が、プレゼンテーション側で取得される不可知論的な形式で取得され、サイト全体の公開が回避されます。実際にはページ上にないため、動的 CT (この場合は HTML フラグメント) を使用してロゴを公開する必要があります。何か不足していますか?
RenderComponentPresentation() は、TCDL または特定のプレゼンテーション側の構文よりも優先されますか?
<tridion:ComponentPresentation runat="server">
代わりに実際に欲しい理由はありますか?
編集:Type="Dynamic"
属性と値がありませんでした。また、RenderComponentPresentation が正しい CP 参照を作成していないと一瞬考えました。