Hi zusammen,
Vielleicht kann mir jemand bei folgender Frage weiterhelfen?
Auf den Produktdetailseiten ist oben ja das Herstellerlogo zu finden. Dieses verlinkt auch wie gewünscht auf die Hersteller-Übersichtsseiten. Allerdings öffnet sich der Link in einem neuen Tab. Ich möchte jedoch, dass dieser im gleichen Fenster geöffnet wird.
Ich meine herausgefunden zu haben, dass die Datei „/web/shopware/vendor/shopware/storefront/Resources/views/storefront/element/cms-element-manufacturer-logo.html.twig“ dafür verantwortlich ist. Also habe ich in meinem eigenen Theme eine abgeleitete twig erstellt, die twig im Storefront-Ordner extended und den Block „{% block element_manufacturer_logo_link %}“ überschrieben. Aber das führt lediglich dazu, dass der Link gar nicht mehr funktioniert - ein Klick aufs Logo führt einen dann einfach nur wieder auf die aktuelle Produktdetailseite. Ich habe auch schon probiert die komplette cms-element-manufacturer-logo.html.twig abzuleiten statt nur dem einen Block - gleiches Ergebnis.
Hat einer einen Tipp für mich, wie man es schafft, dass sich bei Klick auf das Logo die Hersteller-Übersichtsseite im gleichen Tab öffnet?
Vielen Dank für Eure Hilfe!
Hallo Tim,
normalerweise ist das eine Einstellung in der Administration, welche aber bei den aktuellen Versionen scheinbar nicht funktioniert (habe es jetzt nicht näher geprüft).
Wenn es bei dir funktionieren sollte kannst du folgende Einstellung über die Produkt-Einkaufswelt setzen bzw. diese entfernen:
Falls sich die Einstellungen nicht öffnen (Shopware 6.6.x) könntest du es über das Template machen (dein genanntes Template ist richtig):
{% sw_extends '@Storefront/storefront/element/cms-element-manufacturer-logo.html.twig' %}
{% block element_manufacturer_logo_link %}
{% if manufacturer.name %}
<a href="{{ manufacturer.link }}"
class="cms-image-link product-detail-manufacturer-link"
{# {% if config.newTab.value %}target="_blank" rel="noreferrer noopener"{% endif %}#}
title="{{ manufacturer.name }}">
{% if manufacturer.media %}
<div class="cms-image-container is-{{ config.displayMode.value }}"
{% if config.minHeight.value and config.displayMode.value == "cover" %} style="min-height: {{ config.minHeight.value }};"{% endif %}>
{% block element_manufacturer_logo_image %}
{{ parent() }}
{% endblock %}
</div>
{% else %}
{% block element_manufacturer_logo_text %}
{{ parent() }}
{% endblock %}
{% endif %}
</a>
{% endif %}
{% endblock %}
Viele Grüße
Marco
Hi Marco,
Vielen Dank für die schnelle Antwort!
Genau, im Produktlayout in den Einkaufswelten öffnet sich beim Klick auf die Einstellungen des Elements nur ein leeres Fenster:
Mit deinem Code habe ich die Template-Anpassung auch nochmal versucht - aber gleiches Ergebnis: Der Link verweist nur noch auf die aktuelle Produktseite.
Kann es sein, dass ein anderes Theme oder Plugin dazwischenfunkt? Ich habe mein eigenes Theme nicht von der Storefront, sondern von einem Themeware-Theme abgeleitet. Und ich habe das Plugin „Hersteller Professional“ im Einsatz.
Im Themeware-Theme habe ich keine Stelle gefunden, in der der Block „element_manufacturer_logo_link“ überschrieben wird - vielleicht habe ich aber auch nicht an der richtigen Stelle gesucht.
Im Hersteller-Plugin gibt es folgende Referenz auf den Block:
Hast du evtl. noch eine Idee woran es liegen kann?
VG, Tim
Shopware unterstützt das nicht im Standard.
Da wird sich dein Theme und das Plugin gegenseitig überschreiben. Da musst du also in deinem Theme-Template ran, ggf. im Plugin.
Aber schau mal in den Plugin-Konfigurationen, da sollte es eigentlich solch eine Option geben, dass der Link sich im Tab / nicht im Tab öffnet.
Hi Max_shop,
ja genau, das ist eben auch meine Vermutung. Ich habe auch schon versucht, den extend in meinem Theme auf das Plugin zu referenzieren - aber ebenfalls erfolglos. Hast du einen Tipp, wie sich das bewerkstelligen lässt?
In der Plugin-Konfig gibt es leider keine Einstellungsmöglichkeit dafür - habe schon mit dem Entwickler gesprochen. Ggf kommt es auf die Liste für das nächste Update - aber es ist nicht sicher ob und wann.
VG, Tim
Hallo Tim,
ja also ich denke das Themeware da etwas überschrieben haben wird. Muss aber dazu sagen das ich bisher nur wenig mit Themeware zu tun hatte. Ich müsste es selbst debuggen, was Themeware macht und ggfls. auch ein anderes Plugin (eher unwahrscheinlich, denke ich).
Du kennst ja das problematische HTML. Einfach per bspw. grep danach suchen und dann die Datei direkt überschrieben. Ist zwar nicht Update sicher, aber so kannst du bis zum Update der Plugins überbrücken.