在<tridion:ComponentLink />中覆盖命名空间的最简单方法是什么

est*_*why 5 tridion tridion-content-delivery tridion-2011

对于基于ASP.Net的Tridion2011驱动的站点,我需要用一些< custom:ComponentLink /> 替换标准生成的< tridion:ComponentLink />.

(假设这个自定义控件的语义是相同的,那就是:只需要替换名称空间部分.)

最简单,最不干扰的方法是什么?

我的猜测是我应该实现标准LinkTagHandler的替代方案.这是对的吗?

此解决方案的唯一[无穷小]缺点是它需要在cd_deployer_conf中显式配置所有标记处理程序.

编辑

找到了一个简单的简单解决方案,只针对别名命名空间的特定任务:

<TCDLEngine>
    <Properties>
        <Property Name="aspnet.tagprefix" Value="custom"/>
    </Properties>
</TCDLEngine>
Run Code Online (Sandbox Code Playgroud)

幸运的是,我的所有<tcdl:../>标签都被映射到了<custom:../>,否则,这个小作弊无法奏效.

总的来说,我更赞成Peter和Nuno关于创建自定义TCDL标签处理程序的建议.

(只需要赢得我的懒惰:-).

编辑2

哎呀,刚才注意到,Nuno就是上面提到的!

Pet*_*aer 5

是的,我建议您创建自己的TCDL标记处理程序以输出自定义控件而不是默认控件.但是还有另一个潜在的缺点:您需要重新发布您的页面/组件才能生效.


Nun*_*res 4

您可以通过在 cd_deployer_conf(在 TCDLEngine 元素中)中更改前缀来轻松控制前缀。

显然,您需要负责实现该前缀的控制/标记处理程序,并重新发布应该使用它的每个页面/dcp。