我正在寻找创建一个带有可重复链接列表的SDL Tridion架构,同时避免每个链接多个字段。
超链接
在富文本字段中,我有以下创建超链接的选项:*
当内容作者创建其中一个超链接时,他们可以选择链接(可见)文本以及功能类似于典型HTML超链接的标题和目标属性。
“Richtext”表示文本字段Height of the Text Area
=至少2行且已选中Allow Rich Text Formatting
。
单一架构字段链接 创建单个架构字段时,我会看到以下选项:
当前的想法
我在这个“链接列表”中找到的最好的开箱即用(OOTB)设置是提供:
问题
架构表单设计器中是否有一种方法,通过更新架构源,或通过代码提供相同(RTF)超链接下拉选项,但在单个字段中?我可能会遗漏一些东西,但认识到这种情况不支持OOTB。
答案 0 :(得分:5)
我们在这里缺少的一个问题是考虑这些链接是否会在其他地方单独使用。如果是这种情况,多个组件将是我的首选,因此我们可以多次重复使用每个组件。
如果您计划允许编辑器创建他们仅在给定组件中使用的链接列表(不可重复使用),那么您可以使用前面答案中提到的所有选项。
为了让您了解最佳方法(以我的拙见),我们需要考虑以下事项:
每个链接的单个组件:如果链接可重复使用,请使用此方法。
使用嵌入式模式(带链接结构),因此可以在不同的组件类型(模式)中使用此方法
自定义URL /单行文本字段:它需要额外的开发工作,在创建内部链接时,您不太可能保留硬链接引用。如您所知,SDL Tridion会保留对tcm id的引用,以便解析链接,触发发布等。
自定义URL / 2行RTF:它可以完成这项工作,但您需要确保从Schema RTF选项中的Ribbon工具栏中禁用所有其他RTF选项,因此您需要确保编辑器只能创建链接。此外,您可能需要考虑添加一个XSLT过滤器来检查edtiors是否输入的内容不仅仅是链接。这些链接不可重复使用。
一般情况下,如果你实现了一些自定义(GUI扩展+自定义URL),请记住所有TRIDION CMS概念,例如blueprinting(当链接被继承时会发生什么),使用的地方等......
我的建议一直是使用Separated Components,但在发布时要小心链接传播......
答案 1 :(得分:4)
我在客户身上看过这个案例。如果他们考虑减少开发工作量,那么拥有多个嵌入式字段的想法是好的。
你可以将它作为:
[text]链接文字
[Component Link]链接到任何内容
您需要为外部链接添加额外的内容架构,例如:
[外部链接]网址
[text] target
[您需要的任何额外选项]
这意味着编辑器每次创建外部链接时都需要创建一个新的外部链接组件。这是额外的工作,但它也意味着更容易维护在其网站内使用外部网址。
最后,编辑器只会添加多个组件链接,这些链接是任何其他组件的外部链接。它将是模板代码,它检查链接组件的模式并相应地添加代码。
答案 2 :(得分:3)
XML名称描述字段类型
[text]文字文字
[title]标题文字
[static_url]外部网址文字
[component]内部URL组件链接
在“外部URL”和“内部URL”的字段说明中,您可以添加注释以确保编辑器不会混淆,只应填写这两个字段中的一个。从组件中, ID可用于在DWT中创建动态链接。这个解决方案没有开发工作,因为编辑器非常直观。当然,这将是Links模式中的多值嵌入式模式字段。
答案 3 :(得分:2)
此用例可能使用Custom URL
字段,也可能是GUI扩展。我们的想法是拥有一个自定义URL,用于打开弹出窗口(可能是GUI扩展)。在该弹出窗口中,您将选择/构建您的链接(可能使用与普通RTF链接相同的选项 - Component,Anchor,mailto等)。
弹出窗口会返回一个特制的字符串。格式可以是任何东西,甚至是实际的锚标签(但JSon也没关系)。示例:{href:'tcm:1-2',type ='component'}。
您的模板会解释此字符串以生成有意义的内容,例如动态链接或静态HTML锚点。
此外,自定义URL弹出窗口应足够智能,以“解码”此类链接(如果之前在该字段中指定了值),并且可能预先填充RTF链接构造函数表单中的某些属性。