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

在<;中重写命名空间的最简单方法是什么;tridion:ComponentLink/>;,tridion,tridion-2011,tridion-content-delivery,Tridion,Tridion 2011,Tridion Content Delivery,对于我的基于ASP.Net的Tridion2011动力站点,我需要用一些替换生成的标准 (假设此自定义控件的语义相同,即:只需要替换名称空间部分。) 做这件事最简单、干扰最小的方法是什么 我的猜测是,我应该实现标准LinkTagHandler的替代方案。对吗 这个解决方案唯一的缺点是需要在cd_deployer_conf中显式配置所有标记处理程序 编辑 找到了一个简单的解决方案,用于仅对命名空间进行别名的非常具体的任务: 幸运的是,我所有的标记都映射到了,否则,这个小骗局就行不通了 总的来说

对于我的基于ASP.Net的Tridion2011动力站点,我需要用一些替换生成的标准

(假设此自定义控件的语义相同,即:只需要替换名称空间部分。)

做这件事最简单、干扰最小的方法是什么

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

这个解决方案唯一的缺点是需要在cd_deployer_conf中显式配置所有标记处理程序

编辑

找到了一个简单的解决方案,用于仅对命名空间进行别名的非常具体的任务:


幸运的是,我所有的
标记都映射到了
,否则,这个小骗局就行不通了

总的来说,我相当赞成Peter和Nuno关于创建定制TCDL标记处理程序的建议

(只需要战胜我的懒惰:-)

编辑2


哎呀,刚刚注意到,努诺的建议正是上面提到的

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

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


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

当然,您根本不需要使用TCDL。只需直接从模板发出所需的代码。您唯一需要使用TCDL的时候是,如果您对多个前端平台有严格的要求。

Dominic,我最初就是这么做的。但是还有另一个不在模板中包含特定于技术的指令的原因:RTF字段中的组件链接。默认情况下,它们由链接解析器TBB处理,这是一段完整的代码。所以,在CM方面保持技术不可知似乎是明智的想法。