【问题标题】:Looping through the multiple component links to get the schema name of the linked component in Dreamweaver TBB in SDL Tridion 2011在 SDL Tridion 2011 的 Dreamweaver TBB 中循环遍历多个组件链接以获取链接组件的架构名称
【发布时间】:2012-05-31 02:11:13
【问题描述】:

我正在开发 Dreamweaver 模板构建块并为页面实现 SiteEdit。

我正在使用 SDL Tridion 2011 SP1 和 Site Edit 2012 以及默认 Dream Weaver 模板。

我的架构有一个“组件链接”类型的多值字段。 我的主要组件 XML 看起来像这样。

<Content xmlns="UUID">
    <link xlink:type="simple" xlink:href="tcm:202-8121"
          xmlns:xlink="http://www.w3.org/1999/xlink"></link>
    <link xlink:type="simple" xlink:href="tcm:202-8122"
          xmlns:xlink="http://www.w3.org/1999/xlink"></link>
</Content>

链接的组件 XML 如下所示。

<Content xmlns="Some other UUID">
    <text>Hi all</text>
</Content>

我的目标是获取链接组件的架构名称,并为链接组件的字段启用内联编辑。我使用 URI tcm:202-8142-32 为链接组件的架构创建了一个单独的组件模板。

我已经为这样的主要组件编写了 DWT TBB。

<!-- TemplateBeginRepeat name="Fields.link" -->
    <div>
        (FieldPath=@@FieldPath@@, TemplateRepeatIndex=@@TemplateRepeatIndex@@)
    </div>

    <!-- Not able to get the schema name of the linked component -->            
    @@RenderComponentPresentation(link, "tcm:202-8142-32")@@
<!-- TemplateEndRepeat -->

我无法遍历组件链接字段“链接”。

然后我更改了只允许单个组件链接的架构。当 TBB 编写如下时,一切正常:

@@RenderComponentPresentation(link, "tcm:202-8142-32")@@

我知道问题在于循环遍历多个组件链接。

请建议如何遍历多个组件链接并获取每个链接组件的架构名称。

【问题讨论】:

  • 你能看看我对你之前的问题所做的编辑,并自己在这里做同样的事情。所以:1. 正确缩进你的代码和 XML 块(行首 4 个空格,然后每个缩进级别 2 或 4 个)以尽量减少对水平滚动条的需求,2. 如果 Stack Overflow 没有,用语言标记标记每个块'没有正确检测到它。如果您不知道如何做这些,只需查看我以前的编辑或按非常有用的 ?按钮就在您输入/编辑问题的文本区域上方。

标签: tridion tridion-2011


【解决方案1】:

当您循环遍历多值字段的值时(正如您在此处所做的那样),当前值可在名为 Field 的变量中使用。因此,如果您只是将呼叫更改为 RenderComponentPresentation 来引用它,我认为它应该可以工作:

<!-- TemplateBeginRepeat name="Fields.link" -->
    <!-- Not able to get the schema name of the linked component -->            
    @@RenderComponentPresentation(Field, "tcm:202-8142-32")@@
<!-- TemplateEndRepeat -->

【讨论】:

    【解决方案2】:

    我认为您不可能使用 DWT 获取架构名称。您需要做的是编写一个 c# 构建块来提取您要查找的值,然后将这个值放入包中。

    【讨论】:

    • 我又写了一个组件模板来获取链接组件的架构名称。
    • 当你在处理这样的多值字段时,编写一个构建块来将值推送到包中意味着你必须添加未知数量的包变量,并管理与你的链接元素。我认为最好看一个函数源实现来扩展表达式语言。一个很好的例子可以在sdltridionworld.com/community/extension_overview/…找到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2012-06-02
    • 1970-01-01
    • 2012-04-16
    • 2012-05-02
    • 1970-01-01
    相关资源
    最近更新 更多