【问题标题】:How to access componentlink field names in third level?如何在第三级访问 componentlink 字段名称?
【发布时间】:2012-06-01 06:18:14
【问题描述】:

如何在第三级访问componentlink字段名称? 我有一个包含作为可嵌入模式的字段的模式,在该可嵌入模式中,我有一个从另一个模式派生的组件链接。如何检索该架构的字段?

【问题讨论】:

  • 能否请您指定您要使用的 API 并相应地重命名您的问题

标签: tridion tridion-2011


【解决方案1】:

这真的取决于这些字段的用途,也许您可​​以提供更多信息?

此处未提及的另一个选项是编写您自己的 C# 构建块,以将这些 3 级组件添加到您的包中。通过这样做,您可以更轻松地在 DWT 布局中使用它们。

例如,如果您的第三级项目用于生成办公地点列表,您可以编写一个 C# 块来获取所有相关的办公地点组件和将它们作为组件列表“位置”添加到您的包中,您只需在 DWT 中做的就是循环这些项目并提供您需要的显示。

我个人不喜欢在 DWT 中使用/添加函数,我尽量保持它尽可能简单,如果你能提供更多关于你的场景的信息,这会从社区为你产生更好的答案。

【讨论】:

    【解决方案2】:

    据我所知,您需要一个特殊的 DWT TBB 来控制您的嵌入式/组件链接。也许你可以使用 Nuno 的 Get Extensions ? http://www.sdltridionworld.com/community/extension_overview/dreamweaver_get_extension.aspx 或者使用 Razor Mediator,也许: http://www.sdltridionworld.com/community/2011_extensions/razormediator.aspx

    【讨论】:

    • 如果您使用的是 DWT,那么我肯定会考虑 DW Get 扩展。
    【解决方案3】:

    为避免不得不使用 DGX(如 MDa 建议)或编写 C# TBB(如 John Winter 建议),您还可以简单地调用 RenderComponentPresentation 以使用您要使用的模板呈现链接的组件。

    <!-- TemplateBeginRepeat name="Component.Fields.LinkFieldName" -->
        @@RenderComponentPresentation(Field, "tcm:1-23-32")@@
    <!-- TemplateEndRepeat -->
    

    其中tcm:1-23-32 是组件模板的 TCM URI,它只是将组件的名称呈现为超链接。在 tcm:1-23-32 中使用的 DWT 中,您可以简单地引用链接组件的所有字段和属性,例如 Component.TitleComponent.Fields.Field1 等。

    请注意,这些其他问题/答案中已经涵盖了相关主题:

    如果这些对您的帮助不够,我建议您发布您的组件的 XML 和您尝试使用的 DWT。

    【讨论】:

      【解决方案4】:

      这里是使用 C# 的快速示例

      Session session = engine.GetSession();
      Item componentItem = package.GetByName(Package.ComponentName);
      Component component = new Component(new TcmUri(componentItem.GetValue("ID")), session);
      
      ItemFields itemFields = new ItemFields(component.Content, component.Schema);
      IEnumerable<ComponentLinkField> ie = itemFields.OfType<EmbeddedSchemaField>().OfType<ComponentLinkField>();
      for (IEnumerator<ComponentLinkField> e = ie.GetEnumerator(); e.MoveNext(); ) {
          Component linkedComponent = e.Current.Value;
      }
      

      通过使用 Linq,您可以快速浏览字段结构并获得结果。它将为您提供第三级的组件链接,当然您可以使用它来更深入地了解结构。

      【讨论】:

        猜你喜欢
        • 2021-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-26
        • 1970-01-01
        • 1970-01-01
        • 2021-01-28
        • 1970-01-01
        相关资源
        最近更新 更多