2012-11-27 7 views
5

は: ComponentLink />をクリックします。<Tridionの:ComponentLink />名前空間を上書きする最も簡単な方法は何です:いくつかの< <strong>カスタム</strong>でComponentLink />私は、標準生成< <strong>Tridionの</strong>を交換する必要が私のASP.NetベースTridion2011パワードサイトについて

(つまり、同じであるのは、このカスタムコントロールのセマンティクスを想定してみましょう:のみ名前空間の一部を交換する必要があります。)これを行うための最も簡単で侵入的な方法になります何

私の推測では、標準の代替品を実装する必要があります。LinkTagHandlerそれが正しいか?

このソリューションの唯一の欠点は、cd_deployer_confですべてのタグハンドラを明示的に設定する必要があることです。

EDIT

見つかりのみエイリアシング名前空間の非常に特定のタスクにダム簡単な解決策:すべての私の<tcdl:../>タグが<custom:../>にマッピングされてしまったラッキーチャンス、そうでない場合は、この小さなことで

<TCDLEngine> 
    <Properties> 
     <Property Name="aspnet.tagprefix" Value="custom"/> 
    </Properties> 
</TCDLEngine> 

うまくいきません。全体的に

は、私は..ペテロとカスタムTCDLタグハンドラを作成するためのヌーノの提案に賛成してかなりよ

(ちょうど:-)私の怠惰に勝つ必要があります。

EDITは2

おっと、ちょうどヌーノが正確に上記示唆していること、気づきました!

答えて

4

接頭辞は、(TCDLEngine要素の)cd_deployer_confで簡単に制御できます。

明らかに、その接頭辞のコントロール/タグハンドラを実装し、それを使用するすべてのページ/ dcpを再公開する必要があります。

5

はい、独自のTCDLタグハンドラを作成して、デフォルトの代わりにカスタムコントロールを出力することをお勧めします。ただし、別の潜在的な欠点があります。ページ/コンポーネントを再発行して有効にする必要があります。

0

もちろん、TCDLはまったく使用する必要はありません。テンプレートから直接必要なコードを出力してください。このためにTCDLを使用する必要がある唯一の時間は、複数のフロントエンドプラットフォームを一般的にターゲットとする必要がある場合です。

+0

ドミニク、それは私が最初にしたものです。しかし、RTFフィールド内のコンポーネントリンク:テンプレートに技術固有の命令を含める*もう一つの理由はありません。これらはデフォルトでリンクリゾルバTBBによって処理されます。これは全くモノリシックなコードです。だから、技術面にとらわれずにCM側にとどまることはまったく理にかなっているようだ。 – esteewhy

+0

次に、リンクリゾルバを取り出します。あなたはそれを必要としません –

関連する問題

 関連する問題