5

ここで問題が発生しました。私が現時点で持っている構造は次のとおりです。

ComponentA
   FieldA1 - textField
   CombonentsB - componentLink (multi-value)
       FieldB1 - textField
       ComponentC - componentLink
           FieldC1 - textField

今、ComponentA と Template をページに配置しようとしています。DWT テンプレートを使用しています。必要なのは、テンプレートで FieldC1 にアクセスすることです。

「リンクされたコンポーネントをパッケージに追加」TBB を TemplateA に既に追加しました。これと同じだと思います: http://sdltridionworld.com/community/extension_overview/addcompstopackage.aspx テンプレートで FieldB1 にアクセスできますが、階層のさらに下のフィールドにはアクセスできません。

階層全体を含む別の TBB を作成する必要がありますか?それとも、アクセス コードが間違っているだけで期待どおりに動作する必要がありますか?

<!-- TemplateBeginRepeat name="ComponentsB" -->
@@ComponentC.Fields.FieldC1@@
<!-- TemplateEndRepeat -->

機能させるにはどうすればよいですか?新しいTBBを書く以外に解決策はありますか?

=========== ソリューション ============

Nickoli Roussakov が DGX について教えてくれた後、私はそれを正しく実装することができました。ここにコード:

<!-- TemplateBeginRepeat name="ComponentsB" -->
    @@Get("ComponentsB[${TemplateRepeatIndex}].Fields.ComponentC.Fields.FieldC1")@@
<!-- TemplateEndRepeat -->
4

1 に答える 1

8

GetLinkedComponents は、コンポーネントのネストの最初のレベルでのみ機能します。これは、DWT 構文を使用してそれよりも深くすることができないためです。オプションは、コンポーネント B から必要な出力をレンダリングするカスタム tbb を作成するか、GetLinkedComponents の代わりに Nuno の DGX 拡張機能 (sdltridionworld にもあります) を試すことです。

于 2012-11-01T14:06:49.900 に答える