Hallo… wie installiere / deinstalliere ich per Software einen Textbaustein ? kann mir da jemand weiterhelfen ? besten Dank.
Hi! Einen Textbaustein kannst du im Backend ganz einfach anlegen unter: Einstellungen -> Textbausteine (Auf die Richtige Sprache und den richtigen Namespace achten!) und einbinden dann mittels {s name=“dein Textbausteinname”}Defaultwert{/s}
ja, daß das so geht, weiß ich, aber ich habe ein Plugin entwickelt und das soll einen Textbaustein installieren und auch deinstallieren können … das muß also rein programmtechnisch passieren!
Schau dir die Beispiel Plugins in Wiki an - da wird das oft gemacht. In den Upgrade guides für Entwickler findest du auch jede Menge Beispiele Gesendet von meinem iPhone mit Tapatalk
ich hab jetzt etwa 2 dutzend Dokumente und Beispiele gesichtet ohne auch nur eine einzige Textbaustein Installation zu finden. Auch im Upgrade Guide war nichts zu finden. Hab ich da was übersehen ? Wonach muß ich da suchen ?
Hallo, u.a. gibt es hier ein paar Infos zu dem Thema http://wiki.shopware.de/Shopware-4.2-Up … in_changes Sebastian
Ja, vielen Dank, das hat schon mal geholfen, ist aber leider nicht so ganz das, was ich suche. Wenn ich das richtig verstehe, muß ich einen Snippets Ordner anlegen, darin eine Verzeichnisstruktur, die den Namespace beschreibt, anlegen und eine INI-Datei mit den Text-Bausteinen anlegen. Die wird dann automatisch beim Install/Uninstall/Update eingelesen… Dann gibt es also keine PHP-API für die Anlage eines Textbausteins ?! Es gibt damit auch keine Möglichkeit, zur Laufzeit, also nach der Installation einen Textbaustein anzulegen… korrekt ?! Ich muß dann also direkt auf die Datenbank zugreifen, wenn ich einen Textbaustein anlegen bzw. löschen will ?! Ist das so richtig ? Wie sieht es mit dem lesenden Zugriff aus ? Wenn der Textbaustein schon da ist, wie kann ich aus PHP heraus darauf zugreifen ? Muß ich auch dafür ein Select gegen die Datenbank absetzen ?
So… nun hab ich einen Ordner ‘snippets’ im Root meines Plugins angelegt, darin gibt es einen weiteren und noch einen und dann die Datei main.ini: <pluginroot>/snippets/backend/trimension/xyz/main.ini
Die Datei main.ini hat folgenden Inhalt:
meinTextBaustein = "Das ist ein Textbaustein"
Dann installiere ich das Plugin, was ohne Probleme funktiniert, aber der Textbaustein fehlt ! Jemand ne Idee ?
PS: Den Zugriff auf einen Textbaustein hab ich inzwischen auch gefunden:
Shopware()->Snippets()->getNamespace("backend/trimension/xyz/main")->get("meinTextBaustein");
Das funktioniert auch sehr gut.
…aber die Installation leider nicht !
ich bin mit meinem Latein am Ende… Hab jetzt zwei Tage lang versucht, einen Textbaustein zu installieren… vergeblich… Das Snippet-Verzeichnis ist angelegt, die config.php erweitert und verglichen mit allen Dokumenten, die ich gefunden habe… Alles so wie es sein soll, aber es werden keine Textbausteine installiert… Hat das schon mal jemand geschafft ? Ist das schon mal getestet worden ? Es kann doch wohl nicht sein, daß man Textbausteine nur in Templates definieren kann !
Falls das Problem später noch für andere relevant sein sollte: Angenommen, die Textbausteine sollen in dem Namespace “frontend/plugins/plugin_name” erscheinen, dann muss die Pluginstruktur so aussehen: - (Plugin-Root) - Bootstrap.php - snippets/frontend/plugins/plugin_name.ini Wichtig: der Name der .ini-Datei stellt gleichzeitig auch den letzten Ordner im Namespace dar. In dieser Datei “plugin_name.ini” sollte dann bspw. folgender Inhalt enthalten sein: [default] meineintrag = "Entry text" [de\_DE : default] meineintrag = "Text für den Eintrag"
Der Wert “meineintrag” stellt den Namen des Textbausteins dar, wie er später auch im Backend erscheint. Falls mehrere Textbausteine benötigt werden, können diese jeweils im einzelnen Abschnitt geschrieben werden - pro Eintrag eine Zeile. Damit kann dann für unterschiedliche Sprachen gleich eine Übersetzung mitgeliefert werden; die Standardsprache im obigen Beispiel ist englisch. Bei einem Update des Plugins oder einer Neuinstallation bleiben dann etwaige geänderte Textbausteine des Benutzers erhalten und neue werden automatisch ergänzt.