Theme: Zusätzliche Snippets mit .ini File

Schönen Abend zusammen,

Ich möchte mit einem Theme zusätzliche Textelemente (Snippets) ausliefern. Dazu habe ich laut Manual die .ini angelegt und die namespaces in den Template-files entsprechend gesetzt. Allerdings dürfte ich noch irgendwo einen kleinen Fehler haben und ich komm nicht darauf wo es hakt.

config.php

...
'snippet' => array(
    'readFromIni' => true,
    'writeToIni' => false,
),
...

/themes/Frontend/Themename/_private/snippets/frontend/navigation/topbar.ini

[en_US]
frontend/navigation/topbar/MyOrders = "My orders"

[de_DE]
frontend/navigation/topbar/MyOrders = "Meine Bestellungen"

/themes/Frontend/Themename/frontend/index/topbar-navigation.tpl

// Sollte "Meine Bestellungen" ausgeben
{s name="frontend/navigation/topbar/MyOrders" namespace="themes//frontend/navigation/topbar"}{/s}

Irgendwo passt etwas mit dem Namespace oder der Bezeichnung nicht - vielleicht hat jemand einen Tipp!?

Danke Euch vorweg & LG,
Synonymous

Danke @shyim für Deine Info im Chat. Allerdings funktioniert auch folgender Ansatz (ohne themes//) leider nicht:

{s name="frontend/navigation/topbar/MyOrders" namespace="frontend/navigation/topbar"}{/s}

 

Shopware synchronisiert nicht bei jedem Aufruf die .ini Files. Bei Plugins muss mindestens ein Update durchgeführt werden. Bei Themes dagegen reicht es im Theme Manager auf „Themes neu laden“ zu klicken. 

Laut Developers Guide wird das „theme//“ jedoch benötigt. Also würde ich es - sollte es ohne nicht funktionieren - noch einmal einbauen.

Viele Grüße

_edit: _Ich habe gerade nochmal nachgesehen: Nachdem du ja readFromIni auf true gesetzt hast müsste Shopware die inis jedes Mal parsen. Sollte das Snippet jedoch schon in der Datenbank sein wird glaube ich das Snippet aus der Datenbank bevorzugt. ( Außer bei der oben genannten Synchronisation ). Du könntest es auch mit einem readFromDb=>false umgehen.

Hallo,

damit die Snippets nicht bei jedem Einlesen der Templates in der DB überschrieben werden, haben wir dazu auch noch eine Einstellung im Theme-Manager. Wenn Du hier auf den Button “Einstellungen” gehst, gibt es dort die Option “Neuladen der Textbausteine erzwingen”. So kannst Du das Einlesen der Snippets aus Deinem Theme an und aus schalten. Der Namespace der Snippets aus einem Theme ist außerdem mit einem Prefix /themes/*themename*/ versehen.

Sonnige Grüße,
Phil

Hi,

Ist der Namespace themes// wie in der Doku oder /themes/themename wie von Dir geschrieben? Und werden die Textbausteine der Snippets beim Löschen des Caches und Neukompilierung des Themes nicht refresht?

Danke & liebe Grüße,
Synonymous

Also ich bekomm das einfach nicht zum Laufen - mit allen möglichen und unmöglichen Kombinationen.
Noch eine Frage: Lt. Doku muss das _private Verzeichnis im Root des Themes liegen. Kann es sein, dass es eigentlich in das Verzeichnis frontend gehört?

Ich konnte es lösen:
https://synonymous.rocks/texte-in-shopware-5-themes-mit-snippets-und-ini-files-definieren/

Leider kann ich auf den Link nicht zugreifen. Ich habe das gleiche Problem.

Ein abgeleitete Responsive-Theme. Ich habe es wie im Tutorial “ThemeAdvanced” genannt.

Meine Theme.php beginnt so:

     namespace Shopware\Themes\ThemeAdvanced
     use Shopware\Components\Form;
     class Theme extends \Shopware\Components\Theme { …

Die Übersetzungsfelder habe ich mit den Unterstrichen vorne und hinten versehen. z.B.:
        $tab = $this->createTab(‘first_tab’, __slogan_field_label__, );

Für die Übersetzungsdatei habe ich
     htdocs\themes\Frontend\ThemeAdvance_privat\snippets\backend\config.ini
angelegt.

In dieser steht:
     [de_De]
     slogan_field_label = “Slogan de”
     [en_GB]
     slogan_field_label = “Slogan en”

Trotz

     Themes neu laden, kompilieren

Trotz Themes neu laden, kompilieren wird die Übersetzung nicht angezeigt.

Auch in den Settings habe ich “Force snippets reload” angehakt.

Was kann ich noch tun?

Wechsel mal auf das responsive theme und danach wieder zurück auf dein theme. 

Hallo,
kann mir einer von euch bitte jmd ein theme als zip zusenden wo das funktioniert?
es geht einfach nichts

senden an info@richardbruse.de​ oder öffentlich in git oder sowas
Gruß Richard

hab es mittlerweile am laufen
woran es lag konnte ich nicht erkennen

Hat dazu bitte jemand eine verständliche Step-by-Step Anleitung? Ich sitze jetzt mehrere Stunden an dieser Problematik, habe alle möglichen und unmöglichen Kombinationen getestet - das snippet wird einfach nicht geladen :frowning:

Danke

Könnte jemand vom Staff wenigstens schreiben, wo im Core man nachgucken kann?

Shopware/Components/Snippet ist es offensichtlich nicht?!

Es lag ganz einfach an deiner Ordnerstruktur.

_privat ->funktioniert nicht!

_private ->funktioniert!

Leider stehe ich vor dem gleichen Problem ich probiere aktuell, snippets in mein eigen erstelltes Theme einzubinden.

Die soll über die config.ini funktionieren.

Erklärt im Template Training Advance 2.1

leider funkioniert das nicht die Ordnerstruktur ist _private/snippets/backend/config.ini

hat jemand eine Idee?