5

ASP.NetベースのTridion2011を利用したサイトでは、標準で生成された< tridion:ComponentLink />をいくつかの< custom:ComponentLink/>に置き換える必要があります。

(このカスタムコントロールのセマンティクスが同じであると仮定しましょう。つまり、名前空間部分を置き換えるだけで済みます。)

これを行うための最も簡単で邪魔にならない方法は何でしょうか?

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

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

編集

名前空間のみをエイリアシングするという非常に具体的なタスクに対するばかげた単純な解決策を見つけました。

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

幸運なことに、私のすべての<tcdl:../>タグがマッピングされました<custom:../>。そうでない場合、この小さなチートは機能しません。

全体として、カスタムTCDLタグハンドラーを作成するというPeterとNunoの提案に賛成です。

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

編集2

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

4

3 に答える 3

5

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

于 2012-11-27T11:01:50.227 に答える
4

プレフィックスは、cd_deployer_conf(TCDLEngine要素内)で変更することで簡単に制御できます。

明らかに、そのプレフィックスのコントロール/タグハンドラーの実装に注意を払い、それを使用する必要があるすべてのページ/dcpを再公開する必要があります。

于 2012-11-27T14:51:46.913 に答える
0

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

于 2012-11-28T12:17:33.453 に答える