Liebes Forum Ich benötige in einem Template eine weitere Variable aus der Datenbank. Wie kann ich die dem Template zur Verfügung stellen? Hat man vielleicht sogar über das Template vielleicht direkt auf die Datenbank zugriff? Oder ist es notwendig dafür ein Plugin zumachen? Liebe Grüße Kerstin
[quote=“Kerstin83”]Liebes Forum Ich benötige in einem Template eine weitere Variable aus der Datenbank. Wie kann ich die dem Template zur Verfügung stellen? Hat man vielleicht sogar über das Template vielleicht direkt auf die Datenbank zugriff? Oder ist es notwendig dafür ein Plugin zumachen? Liebe Grüße Kerstin[/quote] Kommt darauf an, wo und welcher Inhalt aus der Datenbank als Variable der Template-Engine zur Verfügung gestellt werden soll. In der Regel benötigt man dafür ein Plugin. Allerdings muss man z. B. bei zusätzlichen Artikelfreitextfeldern diese nur im Backend anlegen. Einen direkten Zugriff auf die Datenbank aus Smarty soll es nicht geben, damit wäre der ganze Sinn einer Template-Engine hinfällig. Zu den Plugins gibt es Tutorials. Das Zuweisen einer Variablen aus php zu einer Variablen der Templateengine ist simpel. Man muss sich aber noch überlgene, wo im Shop man die Variable benötigt und das entsprechende Event verwenden. Etwas spezifischer sollte eine Frage schon gestellt werden, damit man sie beantworten kann.
Hallo und vielen Dank schon einmal. Etwas genauer: Ich möchte gerne auf den Artikelseiten (frontend/detail) den einzelnen Optionen Bilder zuweisen. Dazu lege ich eine neue Tabelle an mit Optionsnummer und dem Dateipfad (anstelle des Dateipfades vielleicht auch eine media-id, dann kann ich auf die Tabelle s-Media zugreifen.) Also, mit php auf die Datenbank zuzugreifen und so ist nicht das Problem. Aber wie kommen die Daten dann in das Template? Möglichst ohne Plugin. Wenn aber wirklich erforderlich, gibt es dafür vielleicht ein einfaches Beispiel? Und die Templatedateien würde ich dann gerne im “normalen” Templateordner haben (nicht in …/Plugin). Ist das möglich? Liebe Grüße Kerstin
http://wiki.shopware.de/Shopware-4-Grun … l_971.html Da sollte eigentlich alles drin sein was du benötigst. An dieser Stelle steht z.B. wie du Daten aus der DB lesen und an das Template/View Übergeben kannst: http://wiki.shopware.de/Shopware-4-Grun … nes_Events Eine eigene Template-DAtei für das Plugin zu registrieren ist da glaube ich notwendig, wichtig ist der Aufruf $view->assign(‘slogan’, $this->getActiveSlogan());
[quote=„Kerstin83“]Hallo und vielen Dank schon einmal. Etwas genauer: Ich möchte gerne auf den Artikelseiten (frontend/detail) den einzelnen Optionen Bilder zuweisen. Dazu lege ich eine neue Tabelle an mit Optionsnummer und dem Dateipfad (anstelle des Dateipfades vielleicht auch eine media-id, dann kann ich auf die Tabelle s-Media zugreifen.) [/quote] Ich gehe mal davon aus, dass mit Optionen die Optionsgruppen/Optionen der Varianten gemeint sind. Oder nicht? Falls ja, könnte man dies auch ohne Datenbank realisieren. In dem Array $sConfiguratorValues sind die Optionen aufgelistet und stehen im Frontend zur Verfügung. Die Kombination groupID und optionID (schau die genauen Namen noch mal mit FirePHP im Frontend nach) kann man eine Option (z.B. Farbe-Blau =71-20) eindeutig identifizieren. Die Kombination 71-20 oder ausgeschrieben, nimmt man nun als Dateinamen der Grafik und hängt in Smarty einfach ein .jpg an und erhält die Variable $meinOption mit dem Dateinamen. An der Stelle, wo man dieses Bild ausgeben möchte, muss man nun im Smarty-Template auf die Datei verlinken. Die Bilddateien könnten z.B. in einem Ordner unterhalb von _ressources liegen. Im Prinzip kann man damit auch das Shopware Smwarty-Plugin {link} benutzen. Auch wenn es sich etwas komplex anhört, ist das doch wesentlich weniger Arbeit als eine neue Tabelle zu füllen, Plugins zu schreiben … Ein Plugin lohnt sich meiner Meinung nach nur, wenn man auch eine bequeme, arbeitssparende Verwaltung der Optionsbilder implementiert. Diese sollte dann auch mit Änderungen von Optionsnamen synchronisiert werden. Das ist aber alles viel Arbeit. Du kannst dein Plugin-Template immer in deinem eigenen Template platzieren. Das hängt nur davon ab, wie du das View im Plugin definierst.
Das ist eine wirklich gute Idee. Ich schaue mir da mal an, und melde mich dann noch einmal. Liebe Grüße und vielen Dank Kerstin