Liebes Forum ich habe mich gerade mal mit den Textbausteinen befasst. Das ist ja furchtbar. Das sind ja hunderte. Gibt es dazu eine Dokumentation oder ähnliches, woraus man erkennen kann, wann welcher Eintrag wo erscheint? Oder wie macht man das? Vielleicht direkt in den Templates? Wenn man den Text schon aus dem Frontend kennt, kann man ihn ja suchen. es gibt aber so unendlich viele Texte, die auch nur in bestimmten Situationen erscheinen. Ich bin da echt ratlos. Liebe Grüße Kerstin
Hi! Ich mache das immer so: Wenn ich einen Text ändern möchte, dann suche ich diesen in der Textbaustein suche. Wenn er dort nicht vorkommt so ändere ich den Text im Template. Du musst halt bevor du den Shop launchst, alle Texte genau abchecken, einen Testaccount anlegen, eine Testbestellung durchführen, Schauen was passiert wenn 0 Artikel vorhanden sind usw… usw… Gruß Gazu
Hey @Kerstin83 und @Gazu, hier habt natürlich recht, dass wir wirklich tausende Textbausteine haben, was aber für die Internationalisierung eines Shops leider unabdingbar ist. Grundsätzlich ist das Thema „Textbausteine“ aber gar nicht so schwer wie es vielleicht wirkt. 1. Wie lege ich Textbausteine? Um Textbausteine im Template anzulegen haben wir ein eigene Smarty-Funktion gebaut, die die Aufgabe übernimmt. So habt hier die Möglichkeit einen neuen Textbaustein mit folgenden Code-Snippet anzulegen: {s name="[NAME DES TEXTBAUSTEINS]"}[INHALT DES TEXTBAUSTEINS]{/s}
Wichtig hierbei ist dass ein Textbaustein nur in einen Namespace erstellt werden. Sprich wenn ihr einen Textbaustein auf der Startseite des Accounts anlegt, so kann dieser nicht auf der Detailseite angezeigt werden. Wir haben unsere Namespaces anhand des Pfades angelegt, so dass der Namespace im Grunde dem Pfad im Dateisystem widerspiegelt. Ein Beispiel: Datei: /templates/_emotion/frontend/account/index.tpl Namespace: frontend/account/index 2. Wie kann ich den Namespace umbiegen? Um das oben beschriebene Verhalten umzubiegen haben in der Smarty-Funktion zur Erstellung der Textbausteine eine Möglichkeit eingebaut den Namespace umzubiegen. Dazu muss einfach nur der Parameter „namespace“ gesetzt werden: {s namespace="[NAMESPACE DES TEXTBAUSTEINS]" name="[NAME DES TEXTBAUSTEINS]"}[INHALT DES TEXTBAUSTEINS]{/s}
3. Wie erkenne ich leere Textbausteine? Im Frontend erkennt man einen leeren Textbaustein daran, dass der Name des Textbaustein in jeweils zwei Raute (#) gewrappt sind. ##[NAMESPACE DES TEXTBAUSTEINS]##
Im Backend haben wir einen Button eingebaut, der einen die leeren Textbausteine angezeigt, welcher verwendet werden kann: 4. Warum kann ich Textbausteine nicht im Template ändern? Nachdem ein Textbaustein initial eingelesen wurde, dann wird der Inhalt in die Datenbank geschrieben, so dass wir euch eine Administration der Textbausteine anbieten können. Wenn ihr dennoch den Inhalt im Template überschreiben wollt, dann könnt ihr den Parameter „force“ einfügen. Wichtig hierbei ist aber, dass der Inhalt der im Backend bzw. in der Datenbank gepflegt wurde nicht mehr ausgelesen wird. Hier ein Code-Snippet was die Verwendung aufzeigt: {s name="[NAME DES TEXTBAUSTEINS]" force}[INHALT DES TEXTBAUSTEINS]{/s}
Ich hoffe, dass ich hiermit ein wenig weiterhelfen konnte. Viele Grüße, Stephan Pohl :shopware:
Danke für die ausführlichen Antworten. Ich schaue mir das an und melde mich dazu noch einmal. Liebe Grüße Kerstin