2012-09-07 14 views
1

我們有一個「組件A」,其中有一個多值字段的「嵌入字段」類型。 嵌入式字段依次具有多值字段的類型'組件鏈接'。嵌入式字段中的循環組件鏈接

這看起來像: 組件A - >嵌入式Shcema字段 - >組件以外的鏈接

如何迭代,並在Dreamweaver訪問'組件鏈接' 的領域? 此外,組件字段支持三種不同的模式,我們希望在Dreamweaver中檢查這些模式名稱。我發現this post有用。但更多的細節確實很棒。

+0

任意組合 - 做這些事情瑣碎... – robrtc

回答

4

看一看這些問題:

而這個頁面從外表套上做法食譜:

它們涵蓋了訪問DWT中字段時可能遇到的最常見問題。

如果這些不回答你的問題,更新您的問題有:

  1. 相關的XML 片段您的組件
  2. 的DWT 片段顯示的你已經試過
2

您可以通過嵌入式架構領域的段落多值字段段落重複如下:

<!-- TemplateBeginRepeat name="Component.Fields.paragraphs" --> 

    <h2>@@[email protected]@ (@@[email protected]@)</h2> 
    <!-- TemplateBeginRepeat name="Field.paragraph" --> 
     <p>@@[email protected]@</p> 
    <!-- TemplateEndRepeat --> 

<!-- TemplateEndRepeat --> 
3

您可以通過多值嵌入式領域的組件鏈接輕鬆地重複,但沒有直接的辦法讓組件鏈接值,您必須使用dwt擴展名或.net tbb。有一些在sdltridionworld.com上可用。

我之前用嵌套模板做了這個。您也可以根據循環中組件鏈接字段組件的模式,嘗試使用主dwt tbb中的嵌套/子模板。

另外我會建議使用剃刀模板。

+0

是不是通過組件鏈接自己循環的問題?這些是組件本身的領域,因此***可以通過Tridion的標準DWT處理獲得。 –

+0

我認爲他正在嘗試基於組件鏈接組件模式來獲取值... –

1

請嘗試使用下面的代碼:

  <!-- TemplateBeginRepeat name="paragraphs" --> 
       <!-- TemplateBeginRepeat name="Internal_Link" --> 
       <!-- TemplateBeginIf cond = "Internal_Link != ''" --> 
        <p> @@[email protected]@ </p> 
       <!-- TemplateEndIf --> 
       <!-- TemplateEndRepeat --> 
     <!-- TemplateEndRepeat --> 

要檢查零組件,您可以在下面的代碼中使用:

  <!-- TemplateBeginRepeat name="paragraphs0.Internal_Link" --> 
+0

我認爲,要獲取段落0,您還需要GetLinkedComponent TBB。 –

+0

如果'段落'是一個Component Link字段,那麼的確的確需要一個TBB來將鏈接的組件推送到包中。但是從命名的角度來看,這聽起來像'段落'是當前上下文組件的多值字段,在這種情況下,您可以使用Tridion內置的DWT支持查看這些值,而無需任何自定義TBB。 –

2

如前所述維卡斯,重複了多值的多值組件鏈接場嵌入式模式字段比較簡單。你DWT代碼應該遵循這種形式:

<!-- TemplateBeginRepeat name="XML Name of Embedded Schema Fields" --> 
    <!-- TemplateBeginRepeat name="XML Name of multivalued Component Link field" --> 
     @@[email protected]@ - Should write out the TCM ID of your linked component 
    <!-- TemplateEndRepeat --> 
<!-- TemplateEndRepeat --> 

你不能,但是,訪問這些組件的字段或模式的細節與「開箱即用」 Dreamweaver模板。

您可以:

  1. 安裝內容管理服務器上的Dreamweaver Get eXtension,這將允許您使用@@Get(...)@@語法
  2. 使用「獲取鏈接組件來獲取連接部件領域(除其他事項外) 「.Net TBB從Generic SDL Tridion 2011 Template Building Blocks之前Dreamweaver模板,這將放置鏈接的組件到模板包,以便您可以直接迭代它們
  3. 編寫您自己的.Net TBB來處理您的具體業務邏輯相關的這些鏈接並輸出html(不推薦)或命名包項目,可以從DWT處理的項目或項目數組。
  4. 呼叫從DWT另一個(嵌套的)組件模板與@@RenderComponentPresentation(Field, "tcm:x-xx-32")@@
  5. 如果你使用2011退房剃刀調解員的上述
+0

偉大的回答大衛。 –