Texte in Shopware 5 – Themes mit Snippets und .ini Files definieren

Gäser Brillen Text Buch

Shopware bietet die Möglichkeit statische Texte für Themes elegant mittels .ini Files in Themes zu verpacken. Das hat den Vorteil, dass Themes sehr einfach mit individuellen Texten verteilt werden können, zum Beispiel wenn Du planst Dein Theme zu verkaufen oder es in mehreren Shops zu nützen.

Da das Shopware Manual in dieser Hinsicht etwas mehrdeutig ist, habe ich hier ein kleines Beispiel zusammengestellt, dass Dir die Nutzung von .ini Files für die Snippet Texte erleichtern soll. Der Platzhalter <THEME> muss von Dir dabei durch Deinen Themenamen ersetzt werden.

Beispiel: „Meine Bestellungen“

Ich möchte in der Datei /themes/Frontend/<THEME>/frontend/index/topbar-navigation.tpl (der obersten Navigationsleiste) einen Link mit der Bezeichnung Meine Bestellungen (DE) bzw. My orders (EN) einfügen.

1. ini File anlegen und Strings definieren

Lege folgende Datei in Deinem System an: /themes/Frontend/<THEME>/_private/snippets/frontend/index/topbar-navigation.ini. Die Verzeichnisstruktur gibt zugleich den Namespace des Snippets vor. Details zu den Namespaces und weitere detaillierte Informationen zu Snippets findest Du in der Shopware Developer Doku. Definiere in diesem .ini File die Inhalte entsprechend:

[en_US]
AccountMyOrderHistory = "My orders"

[de_DE]
AccountMyOrderHistory = "Meine Bestellungen"

2. Snippet in Template einfügen

Füge nun an jener Stelle, an der der Text erscheinen soll in der Datei /themes/Frontend/<THEME>/frontend/index/topbar-navigation.tpl unter Angabe des vollständigen Namespaces das Snippet ein.

{s name="AccountMyOrderHistory" namespace="themes/<THEME>/frontend/index/topbar-navigation"}{/s}

3. config.php adaptieren

Damit die Daten aus den .ini Files gelesen und in die Datenbank geschrieben werden, muss die config.php (bzw. config_dev.php und config_staging.php für die jeweiligen Environments) angepasst werden. Füge einen neuen Array snippet hinzu:

return array(
    ...
    'snippet' => array(
        'readFromDb' => true,
        'writeToDb' => true,
        'readFromIni' => true,
        'writeToIni' => false,
    ),
   ....
);

4. Caches leeren und Shop neu laden

Zu guter Letzt musst Du noch die Caches leeren und die Shop-Seite neu laden. Dann werden die Snippets aus den .ini Files ausgelesen und automatisch für die jeweilige Locale in die Datenbank übernommen. Der Anwender hat dann die Möglichkeit diese Texte jederzeit über das Backend innerhalb der Datenbank weiter zu modifizieren.

Zusammenfassung
Texte in Shopware 5 - Themes mit Snippets und .ini Files definieren
Titel
Texte in Shopware 5 - Themes mit Snippets und .ini Files definieren
Beschreibung
Shopware bietet die Möglichkeit statische Texte für Themes elegant mittels .ini Files in Themes zu verpacken. Das hat den Vorteil, dass Themes sehr einfach mit individuellen Texten verteilt werden können, zum Beispiel wenn Du planst Dein Theme zu verkaufen oder es in mehreren Shops zu nützen.
Autor
Publisher
synonymous.rocks
Logo

Kommentar verfassen

Folge mir auf Twitter

Hol Dir kostenlos Tipps und Tricks zu Shopware, E-Commerce und andere Open-Source Produkte.

Folge @synonymousrocks