3

Tridion 2011 (UI 2012) では、コンポーネント リンクのリストであるフィールドを持つコンポーネントがあります。Component Link を介して取り込まれるフィールドの 1 つでインライン編集を有効にしたいと考えています。これは可能ですか?

他の非コンポーネント リンク フィールドのインライン編集を有効にできましたが、CL が問題のようです。最初に tcdl 構文を試しましたが、機能する SiteEdit コンポーネント フィールド マークアップが生成されませんでした。最後に、ページの Start Component Field コメントを編集して、機能する構文が見つかるかどうかを確認しようとしましたが、機能するものは何も見つかりませんでした。

何か案は?

4

2 に答える 2

5

リンクされたコンポーネントを呼び出すニックのソリューションRenderComponentPresentationは正常に機能するはずです。別のコンポーネント プレゼンテーションをレンダリングすることになるため、リンクされたコンポーネントを呼び出すRenderComponentPresentationsことは、一般に良い方法と見なされます。

しかし、生成される正確なタグを制御したい場合は、それも可能です。そのレベルの制御が必要になったとき、私はコメントをいじる代わりに直接出力するカスタム関数をいくつか作成しましたtcdl

これらの関数を使用する DWT スニペット:

<div class="ContentArea">
  <div class="ContentFull">
    @@MarkComponentPresentation()@@
    <h1>@@MarkComponentField('Title')@@@@Component.Fields.Title@@</h1>
    <div>@@MarkComponentField('Image')@@<img src="@@Image.ID@@"/></div>
    <div class="FullDescription">
        <div class="FullDescriptionText">@@MarkComponentField('Description')@@@@Component.Fields.Description@@</div>
    </div>
    ...

したがって、これはMarkXxx通常の代わりにRenderXxxコメントのみを出力するために使用します。

これらの関数のコードは、Google コードの Tridion Practice wiki にあります: http://code.google.com/p/tridion-practice/wiki/TridionUI2012FunctionsForUseInHtmlTemplates

于 2013-01-11T01:01:54.077 に答える
4

を使用してこのリンクされたコンポーネントをレンダリングすると@@RenderComponentPresentation(componentTcmId, comonentTemplateId)@@、コンポーネントのインライン編集を有効にするTBBによって適切なUIタグが追加され、ネストされたコンポーネントを編集できるようになります。

インライン編集コマンドを手動でレンダリングしようとしたアプローチは機能するはずです。うまくいかなかったのは、構文エラーやパラメータ値の無効化/欠落が原因だと思います。

レンダリングされたHTMLドキュメント全体を共有すると、さらにサポートできる場合があります。

于 2013-01-10T23:37:52.507 に答える