ご存知かもしれませんが、私は Razor を使用していくつかの XPM テンプレートに取り組んでいます。別の問題に遭遇しました。今回は、テンプレート内のコンポーネントをレンダリングしてサイト編集可能にすることに関するものです。
以下、よくわかりません。「タイトル」と呼ばれるタイトル フィールドと、タイトル、説明、画像を含むコンポーネントで構成される複数値の componentlink フィールドを持つコンポーネントがあります。今のところ、これを「Linked USP」と呼びましょう。
現在、これは「ページ バナー」と呼ばれるテンプレートによってレンダリングされており、特にタイトルのプレゼンテーションを決定するために、いくつかの If ループを使用してフィールドを反復するだけです。XPM が機能するためには、このテンプレートが「Linked USP」のコンポーネント プレゼンテーションをレンダリングする必要があります。そこで、「[XPM] USP ITEM」というテンプレートを作成しました。- このコンポーネント テンプレートには、「コンテンツ編集 TBB を有効にする」が追加されています。
タイトルも編集可能にしたいときに問題が発生します。簡単に聞こえますよね?そうではありません-親テンプレートに「コンテンツ編集を有効にする」TBBが追加されている場合、<span>
すべての編集可能なフィールドにタグが追加されますが、このテンプレート内で呼び出されるテンプレートにもタグがあり<span>
、効果的にhtmlを肥大化させて作成しますが重複しているため、RenderComponentPresentation 内のフィールドを編集できませ<span>
ん。
あなたの楽しみと私の問題を説明するためのいくつかのコード:
<h1>@RenderComponentField("Title", 0)</h1>
@Foreach(var linkedUSP in Fields.USPS){
@RenderComponentPresentation("linkedUSP.ID", "tcm:10-1076-32")
}
このテンプレートには、有効なコンテンツ編集 TBB が追加されています。
ここで、上記の RCP の [XPM] テンプレート内:
<div class="title">@RenderComponentField("Title", 0)</div>
<p>@RenderComponentField("Description", 0)</p>
<tcdl:ComponentField name="img">
<img src="@img" alt="img.MetaData.alt">
</tcdl:ComponentField>
この 1 つにも「コンテンツ編集を有効にする」TBB が追加されています。フロントエンドでは、次のことが起こります。
<div class="title"><span><span>Men</span></span></div>
親テンプレートもスパンをフィールドに追加するためです。
だから私の質問: どうすればこれを解決できますか? 上記の Title フィールドは親テンプレート内にある必要がありますが、コンポーネント リンクではないため、特別なテンプレートを作成できません。RCP テンプレートから TBB を取り出すことができません。その方法では編集できないからです。面白いでしょ?
どうにかしてテンプレート ビルダー内のスパンを無効にできませんか?