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

时间:2012-11-27 09:42:52

标签: tridion tridion-2011 tridion-content-delivery

对于基于ASP.Net的Tridion2011网站,我需要替换标准生成的&lt; tridion :ComponentLink /&gt;使用一些&lt; 自定义:ComponentLink /&gt;。

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

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

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

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

修改

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

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

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

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

  

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

编辑2

哎呀,刚才注意到,Nuno完全建议上面的内容!

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:0)

当然,您根本不需要使用TCDL。只需直接从模板中发出所需的代码即可。您需要使用TCDL的唯一情况是,您需要一般性地针对多个前端平台。