2

現在、Dreamweaver テンプレートのビルディング ブロックに取り組んでおり、ページに SiteEdit を実装しています。

SDL Tridion 2011 SP1、Site Edit 2012、および Default Dream Weaver テンプレートを使用しています。

私のスキーマには、「Component Link」タイプの複数値フィールドがあります。私のメイン コンポーネント XML は次のようになります。

<Content xmlns="UUID">
    <link xlink:type="simple" xlink:href="tcm:202-8121"
          xmlns:xlink="http://www.w3.org/1999/xlink"></link>
    <link xlink:type="simple" xlink:href="tcm:202-8122"
          xmlns:xlink="http://www.w3.org/1999/xlink"></link>
</Content>

リンクされたコンポーネントの XML は次のようになります。

<Content xmlns="Some other UUID">
    <text>Hi all</text>
</Content>

私の目的は、リンクされたコンポーネントのスキーマの名前を取得し、リンクされたコンポーネントのフィールドでもインライン編集を有効にすることです。URI を使用して、リンクされたコンポーネントのスキーマ用に別のコンポーネント テンプレートを作成しましたtcm:202-8142-32

このようにメイン コンポーネントの DWT TBB を作成しました。

<!-- TemplateBeginRepeat name="Fields.link" -->
    <div>
        (FieldPath=@@FieldPath@@, TemplateRepeatIndex=@@TemplateRepeatIndex@@)
    </div>

    <!-- Not able to get the schema name of the linked component -->            
    @@RenderComponentPresentation(link, "tcm:202-8142-32")@@
<!-- TemplateEndRepeat -->

コンポーネント リンク フィールド「リンク」をループできません。

次に、単一のコンポーネント リンクのみを許可するスキーマを変更しました。TBB が次のように記述されている場合、問題なく動作します。

@@RenderComponentPresentation(link, "tcm:202-8142-32")@@

複数のコンポーネント リンクをループすることに問題があることはわかっています。

複数のコンポーネント リンクをループして、リンクされた各コンポーネントのスキーマ名を取得する方法を提案してください。

4

2 に答える 2

1

DWT を使用してスキーマ名を取得することはできないと思います。あなたがする必要があるのは、あなたが探している値を抽出し、この値をパッケージに入れる ac# 構築ブロックを書くことです。

于 2012-05-24T13:53:08.713 に答える
1

複数値フィールドの値をループしている場合 (ここで行っているように)、現在の値は という変数で使用できますField。したがって、それRenderComponentPresentationを参照するように呼び出しを変更するだけで、うまくいくはずです。

<!-- TemplateBeginRepeat name="Fields.link" -->
    <!-- Not able to get the schema name of the linked component -->            
    @@RenderComponentPresentation(Field, "tcm:202-8142-32")@@
<!-- TemplateEndRepeat -->
于 2012-05-24T20:54:24.990 に答える