我们有一个“组件 A”,它有一个“嵌入字段”类型的多值字段。嵌入的字段又具有“组件链接”类型的多值字段。
这看起来像: 组件 A -> 嵌入式 Shcema 字段 -> 组件链接
如何在dreamweaver中迭代和访问“组件链接”的字段?此外,组件字段支持三种不同的模式,我们想在 Dreamweaver 中检查这些模式名称。
我发现这篇文章很有用。但是更多的细节确实很棒。
我们有一个“组件 A”,它有一个“嵌入字段”类型的多值字段。嵌入的字段又具有“组件链接”类型的多值字段。
这看起来像: 组件 A -> 嵌入式 Shcema 字段 -> 组件链接
如何在dreamweaver中迭代和访问“组件链接”的字段?此外,组件字段支持三种不同的模式,我们想在 Dreamweaver 中检查这些模式名称。
我发现这篇文章很有用。但是更多的细节确实很棒。
看看这些问题:
Tridion 练习手册中的这一页:
它们涵盖了访问 DWT 中的字段时可能遇到的最常见问题。
如果这些不能回答您的问题,请更新您的问题:
您可以轻松地遍历多值嵌入字段的组件链接,但没有直接的方法来获取组件链接值,您必须使用 dwt 扩展名或 .net tbb。sdltridionworld.com 上有一些可用的。
我之前用嵌套模板做过这个。您也可以根据循环中组件链接字段组件的模式从您的主 dwt tbb 尝试嵌套/子模板。
我也建议使用剃须刀模板。
正如 Vikas 之前提到的,在多值嵌入模式字段的多值组件链接字段上重复是相对简单的。您的 DWT 代码应遵循以下形式:
<!-- TemplateBeginRepeat name="XML Name of Embedded Schema Fields" -->
<!-- TemplateBeginRepeat name="XML Name of multivalued Component Link field" -->
@@Field@@ - Should write out the TCM ID of your linked component
<!-- TemplateEndRepeat -->
<!-- TemplateEndRepeat -->
但是,您无法使用“开箱即用”的 Dreamweaver 模板访问这些组件的字段或架构详细信息。
你可以:
@@Get(...)@@
,这将允许您使用语法检索链接组件的字段(以及其他内容)@@RenderComponentPresentation(Field, "tcm:x-xx-32")@@
您可以遍历嵌入模式字段段落中的多值字段段落,如下所示:
<!-- TemplateBeginRepeat name="Component.Fields.paragraphs" -->
<h2>@@Field.header@@ (@@TemplateRepeatIndex@@)</h2>
<!-- TemplateBeginRepeat name="Field.paragraph" -->
<p>@@Field@@</p>
<!-- TemplateEndRepeat -->
<!-- TemplateEndRepeat -->
请尝试使用以下代码:
<!-- TemplateBeginRepeat name="paragraphs" -->
<!-- TemplateBeginRepeat name="Internal_Link" -->
<!-- TemplateBeginIf cond = "Internal_Link != ''" -->
<p> @@Component.ID@@ </p>
<!-- TemplateEndIf -->
<!-- TemplateEndRepeat -->
<!-- TemplateEndRepeat -->
要检查第零个组件,您可以使用以下代码:
<!-- TemplateBeginRepeat name="paragraphs0.Internal_Link" -->