私はしばらくの間これを解決しようとしてきましたが、適切に機能するものを思い付くことができません。
ご覧のとおり、私たちのサイトには、クリック可能な画像または div が多数あり、画像全体にコンポーネントリンクが含まれています。XPM を有効にしてコンポーネントを選択しようとすると、コンポーネント リンクのクリック イベントが発生し、正しいページに誘導されます。
編集時のみこの動作を無効にする簡単な解決策を探していましたが、これまでのところ、率直に言って私が探しているものではないいくつかの回避策を思いつきました.
たとえば、素晴らしい Razor Mediator 条件 (IsSiteEditEnabled) を使用できますが、現在のパブリケーション/ページ/サーバーでサイト編集が有効になっている場合、この関数は常に true に解決されます。これは、次のようなテンプレート固有のコードを挿入すると、
@if(!IsSiteEditEnabled){
<a tridion:href="#"> other code, ending in closing of </a>...
}
サイト編集 (XPM) がアクティブ化されていないが、アクティブ化できる場合、リンクは出力されません。要するに、ステージングサーバー。
他に選択肢がない限り、コードを機能させるには Live パブリケーション サーバーが必要ですが、これにより編集者がステージング サーバーでリンクが壊れていると判断するという問題が発生します。
ここに欠けているものがあると感じています。この問題はあなたのような人が遭遇した可能性があると思います:)
これはブロックの1つです
<article class="block-2x2 banner">
<tcdl:ComponentField name="component_link"></tcdl:ComponentField>
@if(!IsSiteEditEnabled){
@:<a tridion:href="@Fields.component_link">
}
<div class="image-container">
<tcdl:ComponentField name="image"><img src="@Fields.image" alt="@Fields.image.altText"></tcdl:ComponentField>
</div>
<div class="hgroup">
<h4 class="primary-title">@RenderComponentField("header", 0)</h4>
<h5 class="secondary-title">@RenderComponentField("title", 0)</h5>
</div>
@if(!IsSiteEditEnabled){</a>}
</article>