繰り返される項目を逆の順序でループする組み込みの方法はありません。
がパッケージ内の配列アイテム (通常はコンポーネントまたはコンポーネント プレゼンテーションの配列) である場合customtag
、同じアイテムを含むパッケージにリストを逆の順序でプッシュし、そのアイテムをループすることができます。
<!-- TemplateBeginRepeat name="customtag_reversed" -->
yourcustomtag
がフィールドの場合、フィールドをパッケージにプッシュできないため、これは機能しません。その場合、カスタム タグを正しい順序で出力するカスタム関数を作成することをお勧めします。
@@RenderCustomTags('customtag', 'Order.Reverse')@@
アップデート
customtag
がコンポーネント リンクフィールドの場合、リンクされたコンポーネントをコンポーネント配列アイテムとしてパッケージに単純に追加することをお勧めします。Nuno は SDL Tridion World の TBB へのリンクを提供しましたが、これは最も重要なフラグメントです。
// Tridion.ContentManager.Templating.ComponentPresentation
var list = new List<ComponentPresentation>();
list.Add(new ComponentPresentation(Component.Id, ComponentTemplate.Id));
// you'll want to do a loop of these for every linked Component
var item = package.CreateStringItem(ContentType.ComponentArray,
ComponentPresentationList.ToXml(list));
package.PushItem("customtag_Components", item);
リンクされたコンポーネントごとにこれらのループを実行する必要があります。
list.Add(new ComponentPresentation(Component.Id, ComponentTemplate.Id));
また、C# コードでコンポーネント テンプレート ID をハードコーディングする代わりに、C# で空のままにして、RenderComponentPresentation
既に行っているように DWT の呼び出し内に保持することも検討できます。