【问题标题】:SDL Tridion Schema Field "List of Links" OptionsSDL Tridion 架构字段“链接列表”选项
【发布时间】:2012-04-16 12:57:13
【问题描述】:

我希望创建一个包含可重复链接列表的 SDL Tridion 架构,同时避免每个链接有多个字段。

超链接

在富文本字段中,我有以下用于创建超链接的选项:*

  • 组件
  • 锚点
  • http://
  • 邮寄地址:
  • 其他

当内容作者创建这些超链接之一时,他们可以选择链接(可见)文本以及标题和目标属性,其功能类似于典型的 HTML 超链接。

“富文本”是指带有Height of the Text Area 的文本字段 = 至少 2 行并选择了Allow Rich Text Formatting

单一架构字段链接 创建单个架构字段时,我看到以下选项:

  • 外部链接(作者选项将包括 http://、mailto、Other)
  • 多媒体链接
  • 组件链接(可以允许多媒体值)

当前想法

我为这个“链接列表”找到的最好的开箱即用 (OOTB) 设置是:

  1. 单行 2 行 RTF,包含在该字段中创建超链接(任何类型)的说明
  2. 每种类型的单独字段以及显示名称、目标和标题的附加字段(这些字段通过模板代码组装),作者仅填写其中一个字段(组件链接或外部)

问题

在架构表单设计器中是否有办法通过更新架构源或通过代码提供相同的 (RTF) 超链接下拉选项,但在单个字段中?我可能遗漏了一些东西,但认识到这种情况不支持 OOTB。

【问题讨论】:

    标签: tridion


    【解决方案1】:

    我们在这里遗漏的一个问题是考虑这些链接是否会单独在其他地方使用。如果是这样的话,我会首选多个组件,这样我们就可以多次重复使用每个组件。

    如果您计划允许编辑器创建仅用于给定组件(不可重复使用)的链接列表,那么您拥有前面答案中提到的所有选项。

    为了让您了解什么是最好的方法(以我的拙见),您需要考虑以下事项:

    1. 每个链接的独立组件:如果链接可重复使用,请使用此方法。

    2. 使用嵌入式架构(带有链接结构),因此这种方法可以用于不同的组件类型(架构)

    3. 自定义 URL / 单行文本字段:它需要额外的开发工作,并且在创建内部链接时您不太可能保留硬链接引用。如您所知,SDL Tridion 保留对 tcm id 的引用,以便解析链接、触发发布等。

    4. 自定义 URL / 2 行 RTF:它会完成这项工作,但您需要确保在架构 RTF 选项中禁用功能区工具栏中的所有其他 RTF 选项,因此您必须确保编辑器只能创建链接。此外,您可能需要考虑添加一个 XSLT 过滤器来检查编辑者输入的内容是否不仅仅是链接。这些链接不可重复使用。

    一般来说,如果您实现一些自定义(GUI 扩展 + 自定义 URL),请记住所有 TRIDION CMS 概念,例如蓝图(当链接被继承时会发生什么)、使用位置等...

    我的建议一直是使用分离组件,但发布时要小心链接传播...

    【讨论】:

    • 技术和功能注意事项的精彩总结。确实,答案取决于我们对需求的了解程度。
    • 我越来越多地看到每个链接使用一个组件的好处。通过该设置,我们可以对链接输出 (RenderComponentPresentation()) 进行模板化,减少链接 url 中的拼写错误,为每个链接添加元数据或其他字段,简化链接模式,甚至可以区分谁可以选择链接以及谁来确定每个链接的详细信息。对于链接传播,我想我们要么指导作者,要么可能使用自定义解析器?
    • 我正在回答我自己的链接传播问题。使用链接作为组件,我建议指导作者避免自己发布链接,除非他们真的想在这些链接出现的任何地方发布。自定义解析器可能会有所帮助,但它也可能会删除发布单个项目的有用功能。
    【解决方案2】:

    我在客户那里看到过这种情况。如果他们考虑减少开发工作量,那么拥有多个嵌入式字段的想法是好的。

    你可以这样写:

    [文本] 链接文本

    [组件链接]链接到任何东西

    您需要一个额外的外部链接内容架构,例如:

    [外部链接]网址

    [文本] 目标

    [您需要的任何额外选项]

    这意味着编辑器每次创建外部链接时都需要创建一个新的外部链接组件。这是一项额外的工作,但这也意味着在他们的网站内使用外部 URL 更容易维护。

    最后,编辑器只会添加多个组件链接,这些是任何其他模式的外部链接。它将是模板代码检查链接组件的架构并相应地添加代码。

    【讨论】:

    • 我们在研究向单个链接添加元数据的方法时实际上提出了外部组件的想法。这具有很大的副作用,即允许在这些组件上使用“使用位置”(Tridion 的查找功能)。
    • 另外,我想知道你是否想用这些“外部链接”组件处理所有外部链接,即使是来自RTF。模板代码需要将它们组装成超链接,但您可以获得一些不错的转换和批量更新选项。
    • 如果他们想在 all 外部链接中使用该方法,那很好。他们想要使流程标准化是有道理的,但它确实需要一些发展,而且他们会失去不错的选择。我认为只有在外部链接使用方面有严格政策的客户才会乐意采用这种方法。
    【解决方案3】:

    XML 名称描述字段类型

    [文本] 文本文本

    [title] 标题文本

    [static_url] 外部 URL 文本

    [component] 内部 URL 组件链接

    在“External URL”和“Internal URL”的字段描述中,您可以添加注释以确保编辑器不会混淆,这两个字段应该只填写一个。从组件中,它的ID 可用于在 DWT 中创建动态链接。该解决方案无需开发工作,并且对于编辑器而言非常直观。当然,这将是 Links 架构内的多值嵌入架构字段。

    【讨论】:

    • 添加评论的要点是,我意识到缺少架构字段描述是我使用这种直接设置的最大问题。
    【解决方案4】:

    这个用例可能使用Custom URL 字段和可能的GUI 扩展来工作。这个想法是有一个自定义 URL 来打开一个弹出窗口(可能是一个 GUI 扩展)。在该弹出窗口中,您将选择/构建您的链接(可能使用与普通 RTF 链接相同的选项 - 组件、锚点、mailto 等)。

    弹出窗口会返回一个特制的字符串。格式可以是任何东西,甚至是实际的锚标记(但 JSON 也可以)。示例:{href:'tcm:1-2',type='component'}。

    您的模板会解释此字符串以生成有意义的内容,例如动态链接或静态 HTML 锚点。

    此外,自定义 URL 弹出窗口应该足够聪明,可以“解码”这样的链接(如果之前在该字段中指定了值),并且可能会在 RTF 链接构造函数表单中预填充一些属性。

    【讨论】:

    • 与我合作的特定组织确实为分析和客户端个性化的其他一些领域选择了 GUI 扩展。我们确实添加了“解码”(或至少剥离)此类标签的功能要求。不确定他们对链接的最终选择是什么,但他们倾向于 RTF。
    猜你喜欢
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 2012-09-30
    • 2013-01-01
    • 2012-05-14
    • 2012-12-07
    • 2023-04-10
    • 2012-08-10
    相关资源
    最近更新 更多