对于基于ASP.Net的Tridion2011网站,我需要替换标准生成的< tridion :ComponentLink />使用一些< 自定义:ComponentLink />。
(假设这个自定义控件的语义是相同的,那就是:只需要替换名称空间部分。)
最简单,最不干扰的方法是什么?
我的猜测是我应该实现标准 LinkTagHandler 的替代方案。这是对的吗?
此解决方案的唯一[无穷小]缺点是它需要在cd_deployer_conf中显式配置所有标记处理程序。
修改
找到了一个简单的简单解决方案,只针对别名命名空间的特定任务:
<TCDLEngine>
<Properties>
<Property Name="aspnet.tagprefix" Value="custom"/>
</Properties>
</TCDLEngine>
幸运的是,我的所有<tcdl:../>
标签都被映射到<custom:../>
,否则,这个小作弊无法发挥作用。
总的来说,我更赞成Peter和Nuno关于创建自定义TCDL标记处理程序的建议。
(只需要赢得我的懒惰: - )。
编辑2
哎呀,刚才注意到,Nuno完全建议上面的内容!
答案 0 :(得分:5)
是的,我建议您创建自己的TCDL标记处理程序以输出自定义控件而不是默认控件。但是还有另一个潜在的缺点:你需要重新发布你的页面/组件才能生效。
答案 1 :(得分:4)
您可以通过在cd_deployer_conf中更改前缀(在TCDLEngine元素中)轻松控制前缀。
显然,您需要注意为该前缀实现控件/标记处理程序,并重新发布应该使用它的每个页面/ dcp。
答案 2 :(得分:0)
当然,您根本不需要使用TCDL。只需直接从模板中发出所需的代码即可。您需要使用TCDL的唯一情况是,您需要一般性地针对多个前端平台。