Ich habe versucht, dies seit einiger Zeit zu lösen, aber ich kann nicht etwas finden, das richtig funktioniert.Deaktivieren von Klickereignissen in XPM-Bearbeitung (Razor)
Sie sehen, auf unserer Website sind viele anklickbare Bilder oder divs vorhanden, die mit Komponentenlinks versehen sind, die über das gesamte Bild fallen. Wenn Sie XPM aktivieren und versuchen, die Komponente auszuwählen, wird das Click-Ereignis der Komponentenverknüpfung ausgelöst und Sie zur richtigen Seite weitergeleitet.
Ich habe nach einer schnellen Lösung gesucht, um dieses Verhalten nur beim Bearbeiten zu deaktivieren, und bisher habe ich mir ein paar Workarounds ausgedacht, die ehrlich gesagt nicht das sind, wonach ich suche.
Sie können zum Beispiel die fantastische Razor Mediator-Bedingung (IsSiteEditEnabled) verwenden, diese Funktion wird jedoch immer in "true" aufgelöst, wenn die aktuelle Publikation/Seite/Server für die Website-Bearbeitung aktiviert ist. Dies bedeutet, dass, wenn Sie Template-spezifischen Code wie
@if(!IsSiteEditEnabled){
<a tridion:href="#"> other code, ending in closing of </a>...
}
nicht ausgegeben einen Link, wenn die Site bearbeiten (XPM) einfügen nicht aktiviert ist, kann aber aktiviert werden. Staging-Server, kurz gesagt.
Wenn keine andere Option vorhanden ist, benötige ich einen Live-Veröffentlichungsserver, um den Code funktionsfähig zu machen. Dies stellt jedoch das Problem dar, dass die Redakteure glauben, dass auf den Staging-Servern Links nicht funktionieren.
Ich habe das Gefühl, dass mir hier etwas fehlt. Ich glaube, dass dieses Problem könnte von jemand angetroffen haben, wie Sie
:) das ist einer der Blöcke
<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>
Es scheint, dass diese Fragen eine Prämie brauchen ... – MDa
Ich denke, dass Sie mehr als eine Prämie brauchen - ich bin wirklich verwirrt durch Ihre Frage - Vielleicht darüber nachdenken, es neu zu formulieren. Warum möchten Sie die Links deaktivieren? Liegt es daran, dass Sie die Komponenten nicht bearbeiten können? –
Nun, die gesamte Komponente ist ein großes Klick-Banner. Was das bedeutet, um sie auf der Site zu bearbeiten, benötigen Sie den Fokus dieser Komponente, indem Sie darauf klicken. Da es einen Link hat, werden Sie auf eine andere Seite weitergeleitet, und eine Bearbeitung ist nicht möglich. – MDa