Shopware 5.x stellt im Responsive-Theme am oberen rechten Fensterrand ein Dropdown-Menu mit dem Titel Service/Hilfe dar. Mit einigen wenigen Handgriffen kann man es leicht ändern oder ganz entfernen.
Im Standard stellt das Service/Hilfe-Dropdown-Menu den Inhalt der Shopseiten-Gruppe ‚Links‘ dar. Man kann nun diese Gruppe direkt bearbeiten oder eine neue anlegen und diese im Menu anzeigen — was ich im folgenden erklären werde.
Seitengruppe anlegen
Der erste Schritt ist dabei das Anlegen einer neuen Gruppe. Unter Inhalte → Shopseiten klickt man im Shopseiten-Fenster unten links auf ‚Neue Gruppe‘. Dabei ist wichtig, dass die neue Gruppe eine eindeutige Template-Variable bekommt; wir nennen sie hier gTopMenu
. Ist die Gruppe erstellt, kann man ihr die Seiten zuweisen, die man im Menu sehen möchte.
Titel des Menus
Der Titel des Menus ist der Textbaustein IndexLinkService
; entsprechend lässt er sich in der Textbaustein-Verwaltung unter Einstellungen → Textbausteine einfach ändern.
Es gibt diesen Textbaustein aber zweimal: Einmal im Namespace frontend/index/checkout_actions
zum anderen im Namespace frontend/index/topbar_navigation
. Im Template verwendet wird der Textbaustein des Namespaces frontend/index/checkout_actions
. Ich halte das für nicht ganz nachvollziehbar, schließlich befinden wir uns in der Topbar-Navigation. Ich habe deshalb den Text für frontend/index/topbar_navigation
geändert und den anderen Baustein im überschriebenen Template verwendet (s.u.).
Wenn die Vorarbeiten nun fertig sind — also die neue Gruppe angelegt ist und ggf. der Menu-Titel angepasst ist — kann man daran gehen, das alte Menu im Template durch das neue zu überschreiben. Denn genau das ist der Mechanismus, mit dem man in Shopware (oder besser: beim Template-System smarty) einen Block ändert, durch Überschreiben.
Block überschreiben
Erste Variante: Mit gleichem Textbaustein
Der Menu-Block ist definiert im Template frontend/index/topbar-navigation.tpl
. Unter diesem Pfad und unter diesem Namen muss nun im eigene Theme eine neue Datei angelegt werden. Mit folgendem Code wird darin der alte Menu-Block überschrieben:
{extends file="parent:frontend/index/topbar-navigation.tpl"} {block name="frontend_index_checkout_actions_service_menu_include"} {include file="widgets/index/menu.tpl" sGroup=gTopMenu} {/block}
(Wer dem Menu einen anderen Template-Variablen-Namen gegeben hat als gTopMenu
muss das natürlich entsprechend ändern.)
Damit sollte das neue Menu bereits im Top-Bereich erscheinen.
Will man das Menu ganz entfernen muss man natürlich keine neuen Gruppe anlegen — wozu auch. Es reicht, den alten Menu-Block leer zu überschreiben, also so:
{extends file="parent:frontend/index/topbar-navigation.tpl"} {block name="frontend_index_checkout_actions_service_menu_include"}{/block}
Zweite Variante: Mit anderem Textbaustein
Wer den Textbaustein aus dem anderen Namespace verwenden möchte, muss etwas anders überschreiben.
Hier könnte der neue Block so aussehen:
{extends file="parent:frontend/index/topbar-navigation.tpl"} {block name="frontend_index_checkout_actions_service_menu"} <div class="navigation--entry entry--service has--drop-down" role="menuitem" aria-haspopup="true" data-drop-down-menu="true"> <i class="icon--service"></i> {s namespace='frontend/index/topbar-navigation' name='IndexLinkService'}{/s} {block name="frontend_index_checkout_actions_service_menu_include"} {include file="widgets/index/menu.tpl" sGroup=gTop} {/block} </div> {/block}