TCDL linkAttributes的正确格式是什么?

时间:2012-08-20 22:53:05

标签: tridion tridion-content-delivery

我可以看到与技术无关的Tridion Content Delivery Language (TCDL) link具有以下参数,这些参数在SDL Live Content上有很好的描述。

  • 来源
  • 目的地
  • templateURI
  • linkAttributes
  • textOnFail
  • addAnchor
  • VariantId

我们如何为linkAttributes添加多个属性 - 值对?具体来说,我们使用什么来逃避双引号以及单独的对(例如,如果我们需要class =“someclass” onclick =“someevent”)。

2 个答案:

答案 0 :(得分:4)

单独的对只是空格分隔,就像一系列正常的属性一样。然而,尝试使用linkAttributes的值编码XML。因此,"变为&quote;等等......

如果您使用的是某些Javascript,则可能会像\"一样处理Javascript引号。

答案 1 :(得分:3)

编辑 :在我发现您的真实问题后,答案更简单:

您应该将linkAttributes中的值换成单引号。 linkAttributes内的空格通常可以正常处理;但如果没有,请使用%20逃避。

如果您需要更多内容或想要标准tcdl:ComponentLink无法处理的内容,请记住您始终可以创建自己的TCDL代码并使用TagHandlerTagRenderer (在文档中查找示例或在TagRenderer上搜索Jaime的文章)以准确地完成您想要的内容。


我原来的回答是你没有问的一个问题:TCDL标签的格式是什么(通常)。但是这个解释对某些人来说可能仍然有用,所以仍然如下。

我建议查看默认构建块的格式(例如“默认完成操作”中的“链接解析器TBB”)输出,并将其用作指导。

这是我可以从已发布页面的传输包快速获得的内容:

<tcdl:Link type="Page" origin="tcm:5-199-64" destination="tcm:5-206-64" 
           templateURI="tcm:0-0-0" linkAttributes="" textOnFail="true" 
           addAnchor="" variantId="">Home</tcdl:Link>

<tcdl:ComponentPresentation type="Embedded" componentURI="tcm:5-69" 
                            templateURI="tcm:5-133-32">
  <span>
  ...

我从经验中了解到的一件事:您的整个TCDL标签必须在一条线上(为了便于阅读,我将上面的线包裹起来)。或者至少是用于调用REL TagRenderer的情况。显然, 上方的tcdl:ComponentPresentation标记 会跨越多行,因此“单行规则”并不适用于所有地方。

这可能是最好的建议:鉴于TCDL标签在Tridion发布,部署和交付管道中的多个点处理,我会坚持使用默认TBB输出的格式。从我的样本看起来如下:将所有内容放在一行中并将值包装在(双)引号中。