1

タイプ「埋め込みフィールド」の複数値フィールドを持つ「コンポーネント A」があります。埋め込みフィールドには、タイプ ' Component Link ' の複数値フィールドがあります。

これは次のようになります: Component A -> Embedded Shcema Fields -> Component Links

Dreamweaverで「コンポーネントリンク」のフィールドを反復してアクセスする方法は? また、コンポーネント フィールドは 3 つの異なるスキーマをサポートしており、dreamweaver でこれらのスキーマ名を確認したいと考えています。

この投稿は役に立ちました。しかし、詳細は確かに素晴らしいでしょう。

4

5 に答える 5

4

これらの質問を見てください:

そして、Tridion practice cookbook のこのページ:

これらは、DWT のフィールドにアクセスする際に発生する可能性がある最も一般的な問題をカバーしています。

これらがあなたの質問に答えない場合は、質問を次のように更新してください

  1. コンポーネントの関連する XMLフラグメント
  2. すでに試したことを示すDWTフラグメント
于 2012-09-07T11:27:36.107 に答える
3

複数の値が埋め込まれたフィールドのコンポーネント リンクを簡単に繰り返すことができますが、コンポーネント リンクの値を直接取得する方法はありません。dwt 拡張子または .net tbb を使用する必要があります。sdltridionworld.com で入手できるものもあります。

以前にネストされたテンプレートでこれを行いました。ループ内のコンポーネント リンク フィールド コンポーネントのスキーマに基づいて、メインの dwt tbb からネストされた/サブ テンプレートを試すこともできます。

また、かみそりテンプレートを使用することをお勧めします。

于 2012-09-07T12:04:16.070 に答える
2

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テンプレートを使用して、これらのコンポーネントのフィールドまたはスキーマの詳細にアクセスすることはできません。

あなたはできる:

  1. Dreamweaver GeteXtensionをContentManagerサーバーにインストールします。これにより、@@Get(...)@@構文を使用して、リンクされたコンポーネントのフィールドを(とりわけ)取得できるようになります。
  2. Dreamweaverテンプレートの前にGenericSDLTridion2011テンプレートビルディングブロックの「GetLinkedComponents」.NetTBBを使用します。これにより、リンクされたコンポーネントがテンプレートパッケージに配置され、直接反復処理できるようになります。
  3. 独自の.NetTBBを作成して、これらのリンクに関連する特定のビジネスロジックを処理し、HTML(非推奨)またはDWTから処理できる名前付きパッケージアイテム、アイテム、またはアイテムの配列を出力します。
  4. DWTから別の(ネストされた)コンポーネントテンプレートを呼び出す@@RenderComponentPresentation(Field, "tcm:x-xx-32")@@
  5. 上記の任意の組み合わせ
于 2012-09-07T13:49:17.707 に答える
2

次のように、埋め込みスキーマ フィールドの段落内の複数値フィールドの段落を反復処理できます。

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

    <h2>@@Field.header@@ (@@TemplateRepeatIndex@@)</h2>
    <!-- TemplateBeginRepeat name="Field.paragraph" -->
        <p>@@Field@@</p>
    <!-- TemplateEndRepeat -->

<!-- TemplateEndRepeat -->
于 2012-09-07T11:29:54.540 に答える
1

以下のコードを使用してみてください。

          <!-- TemplateBeginRepeat name="paragraphs" -->
               <!-- TemplateBeginRepeat name="Internal_Link" -->
                 <!-- TemplateBeginIf cond = "Internal_Link != ''" -->
                    <p> @@Component.ID@@ </p>
                 <!-- TemplateEndIf -->
               <!-- TemplateEndRepeat -->
         <!-- TemplateEndRepeat -->

ゼロ番目のコンポーネントをチェックするには、以下のコードを使用できます。

          <!-- TemplateBeginRepeat name="paragraphs0.Internal_Link" -->
于 2012-09-07T12:09:24.910 に答える