我可以看到与技术无关的Tridion Content Delivery Language (TCDL) link具有以下参数,这些参数在SDL Live Content上有很好的描述。
我们如何为linkAttributes添加多个属性 - 值对?具体来说,我们使用什么来逃避双引号以及单独的对(例如,如果我们需要class =“someclass”和 onclick =“someevent”)。
答案 0 :(得分:4)
单独的对只是空格分隔,就像一系列正常的属性一样。然而,尝试使用linkAttributes
的值编码XML。因此,"
变为"e;
等等......
如果您使用的是某些Javascript,则可能会像\"
一样处理Javascript引号。
答案 1 :(得分:3)
编辑 :在我发现您的真实问题后,答案更简单:
您应该将linkAttributes
中的值换成单引号。 linkAttributes
内的空格通常可以正常处理;但如果没有,请使用%20
逃避。
如果您需要更多内容或想要标准tcdl:ComponentLink
无法处理的内容,请记住您始终可以创建自己的TCDL代码并使用TagHandler
或TagRenderer
(在文档中查找示例或在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输出的格式。从我的样本看起来如下:将所有内容放在一行中并将值包装在(双)引号中。