3

我可以看到独立于技术的Tridion 内容交付语言 (TCDL) 链接具有以下参数,这些参数在 SDL Live Content 上有很好的描述。

  • 类型
  • 起源
  • 目的地
  • 模板URI
  • 链接属性
  • 文本失败
  • 添加锚
  • 变体 ID

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

4

2 回答 2

4

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

如果您正在使用一些 Javascript,您也可能需要注意 Javascript 引号,如\".

于 2012-08-20T23:18:03.473 回答
3

编辑:在我弄清楚你真正的问题之后,答案要简单得多:

您应该将值包含linkAttributes在单引号中。内部空间linkAttributes通常处理得很好;但如果没有,请使用%20.

如果您需要更多的东西或想要标准未处理的东西tcdl:ComponentLink,请记住,您始终可以创建自己的 TCDL 标签并使用TagHandlerTagRenderer(在文档中查找示例或搜索 Jaime 的文章TagRenderer)来做正是你想要的。


我最初的回答是针对一个你没有问的问题: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上面的标签跨越多行,因此“单行规则”并不适用于任何地方。

这可能是最好的建议:考虑到在 Tridion 发布、部署和交付管道中的多个点处理 TCDL 标签这一事实,我会坚持使用默认 TBB 输出的格式。从我的示例来看,这似乎是:将所有内容放在一行上并将值括在(双)引号中。

于 2012-08-20T23:17:11.573 回答