次のように、DWT テンプレート ビルディング ブロック (TBB) の配列をループまたは反復処理できることを理解しています。
<!-- TemplateBeginRepeat name="array_name" -->
<!-- template logic -->
<!-- TemplateEndRepeat -->
ドキュメントには、定義済みのパッケージ アイテムとその使用方法が記載されています。
要約すると、次を使用できます。
Component
コンポーネントまたはコンポーネント プレゼンテーションを反復するときに現在のコンポーネントを参照するComponentTemplate
コンポーネント プレゼンテーションを反復処理するときに現在のコンポーネント テンプレートを参照する (これはページ レベルになります)Field
フィールドと複数値フィールドを反復処理するときに現在のフィールドを参照します。FieldPath
繰り返しアイテムへのフルパスを取得します。The Tridion Practice CookbookTemplateRepeatIndex
に見られるように、ネストされたループ内で使用する場合に便利です。TemplateRepeatIndex
、ゼロベースのループカウント。
コンポーネント配列ループ内の特定のコンポーネントでネストされたループを実行したり、複数値フィールドを反復するときに特定のフィールド名を条件付きでチェックしたりできます。Fields
私は、DWT の構文をネストすることによる二重ルックアップを見てきました (たとえば@@Image_${TemplateRepeatIndex}@@
、Yet Another Tridion ブログ で説明されているように)。
質問
確かに、これらは複合テンプレートのアイテムまたは配列/コレクションPackage
ですよね (デフォルトでそこにあるか、コードによって配置されています)?
パッケージ内の個別のアイテムを「反復」することはできますか?
たとえば、 に個々のコンポーネントがある場合、 のPackage
ようなものでそれらを「反復」でき@@Component${TemplateRepeatIndex}@@
ますか?
- コンポーネント1
- コンポーネント 2
- コンポーネント3
loop 内でそのようなアイテムを参照できることがわかりましたが、私が見たすべてのことは、次のことは不可能であることを示唆しています:
<!-- TemplateBeginRepeat name="@@Component${TemplateRepeatIndex}@@" -->
<!-- do something with @@Component${TemplateRepeatIndex}@@ -->
<!-- TemplateEndRepeat -->