10

惑星トリディオンからのすべての人間のための1つの大きな「こんにちは」:)。

コンポーネント リンクを SDL Tridion UI 2012 で編集可能にしようとしています。

フィールドの 1 つとして多値コンポーネント リンクを含む 1 つのコンポーネントがあります。

以下をDWTに入れると

<!-- TemplateBeginRepeat name="componentLink" -->
 <!-- TemplateBeginIf cond="TemplateRepeatIndex<3" -->
  <li> 
   <a href="#" tridion:href="@@RenderComponentField(FieldPath+"componentLink",TemplateRepeatIndex)@@">
    Link${TemplateRepeatIndex}
   </a>  
  </li> 
 <!-- TemplateEndIf -->
<!-- TemplateEndRepeat -->

その結果、テンプレートビルダー内で次のようになりました。

<li><a href="#" tridion:href="<tcdl:ComponentField name="componentLink" index="0">tcm:8-625</tcdl:ComponentField>">Link0</a></li> 
<li><a href="#" tridion:href="<tcdl:ComponentField name="componentLink" index="1">tcm:8-626</tcdl:ComponentField>">Link1</a></li> 
<li><a href="#" tridion:href="<tcdl:ComponentField name="componentLink" index="2">tcm:8-627</tcdl:ComponentField>">Link2</a></li> 

予想どおり、ページ レベルの「既定の終了アクション」でエラーが発生しました

tridion:href の適切な値が見つかりません

以前のアクションで C# TBB 内のコンポーネント リンクを抽出する必要がありますか、またはこれを解決する他の方法がありますか (SDL Tridion UI のコンポーネント リンクを有効にする)?

4

2 に答える 2

10

私の「新しい UI VM」には、デザインに次のコードがあります。

<tcdl:ComponentField name="LinkText">
  <a tridion:href="@@Component.Fields.Target@@">${LinkText}</a>
</tcdl:ComponentField>

リンクされたコンポーネントは、新しい UI で編集できます。tcdl:ComponentField は、適切なコンテキスト内編集命令をリンクにラップするために処理されます。それをコードに簡単に変換できるはずです...

于 2012-05-28T10:02:01.550 に答える
6

Jeremy に感謝します<tcdl:ComponentField>。タグを手動で追加すると、この問題が解決します。

ページ レベルでコンポーネント リンクを正しく解決する最終的なコードを次に示します。

<!-- TemplateBeginRepeat name="componentLink" --> 
    <!-- TemplateBeginIf cond="TemplateRepeatIndex<3" --> 
        <li>
            <tcdl:ComponentField name="componentLink">
                 <a tridion:href="@@Field@@">Link${TemplateRepeatIndex} </a>
            </tcdl:ComponentField>  
        </li>
    <!-- TemplateEndIf -->
<!-- TemplateEndRepeat -->
于 2012-05-28T11:29:14.037 に答える