Shopware_Modules_Basket_AddArticle_FilterSql

Filter Events sind in Shopware ja so definiert, dass man die Daten, die von dem Filter übergeben werden, manipulieren kann.

Das scheint bei dem Event Shopware_Modules_Basket_AddArticle_FilterSql in der Klasse sBasket.php nicht der Fall zu sein. Es ist der ideale Filter um z.B. den Artikeltext mit weiteren Informationen anzureichern. Diese würde dann auch auf der Bestellung erscheinen.

Aber leider bekommt man nur ein SQL-Statement und ein paar Variablen übergeben, die mit dem SQL-Statement keine Verbindung haben.

Damit kann man auch nur das SQL-Statement an den Filter zurück geben. Die Parameter für die ? sind in der Funktion sAddArticle definiert und können über den Filter nicht verändert werden. ...  mehr lesen

Shopware Plugin Javascript

Um bei einem Shopware Plugin eine Javascript Datei hinzuzufügen, legt man die entsprechende Datei im Ordner Pluginordner/Resources/frontend/js ab.

Damit die Datei in Shopware eingebunden wird, muss das Theme im Backend neu zugewiesen und kompiliert werden. Dabei schaut Shopware automatisch in diesen Ordner und bindet alle enthaltenen js Dateien ein.Die Datei ist dann nicht als einzelner Dateiaufruf in die HTML-Seite eingebunden, sondern wird an eine „grosse“ Javascript Datei, in der alle Javascript Funktionen enthalten sind, angefügt. ...  mehr lesen

Shopware Plugin Template

Plugins können auch ihre eigenen Templates registrieren. Dafür legt man in der Verzeichnisstruktur des Plugins einen Unterordner …../Resources/views an. Diesen Ordner kann man nennen wie man will, aber es haben sich diese Verzeichnissnamen als Konvention eingebürgert.

Je nachdem in welchem Bereich man nun ein Teplate registrieren möchte wird in diesem Ordner der Pfad zur Templatedatei aus dem Templateverzeichnis nachgebildet. Um z.B. die Artikel Detailansicht zu überschreiben legt man in diesem Verzeichnis die Datei /frontend/detail/data.tpl an. ...  mehr lesen

Shopware Smarty Block if

In Smarty Templates können bei der Vererbung Blöcke nicht innerhalb einer if-Abfrage definiert werden. Folgender Code funktioniert nicht. Der entsprechende Block wird nicht überschrieben. Dabei ist das Freitetxtfeld attr20 im Shopware Backend als Checkbox definiert. Sie gibt an, ob der Preis ein Anfragepreis ist.

Das die IF-Abfrage muss innerhalb des Blocks erfolgen und wenn $sArticle.attr20 = 0 ist, wird der übergeordnete Block gerendert.

  ...  mehr lesen

Shopware – directory not allowed by security setting

directory … not allowed by security setting

Beim Ausführen von Plugins kann es zu dieser Fehlermeldung kommen.

Das Thema wird in verschiedenen Diskussionsbeiträgen im Shopware Forum diskutiert. Es scheint ein Problem vom Cache zu sein, wenn im Plugin das Setzen des Template Verzeichnis von einer Bedingung abhängt. Folgender Code funktioniert ohne Probleme:

Bei folgendem Code tritt die Fehlermeldung auf:

Das das Problem auch bei der momentan aktuellen Shopware Version 5.4.6 auftritt, ist meine einzige Lösung die Logik in die Smarty Templates auszulagern. Dabei muss man beachten, das man keine if Abfragen ausserhalb von {block}….{/block} einsetzen kann. ...  mehr lesen

Shopware Plugin Css

Wenn man in einem Plugin CSS Code hinzufügen will, ist die einfachste Möglichkeit die CSS-Datei im Order PluginOrdner/Resources/frontend/css/*.css abzulegen. Wenn man nun das Template neu kompiliert, wird das CSS automatisch in Shopware eingebunden.

Das gleiche gilt für Javascript und Less Dateien. Diese müssen entsprechend im Ordner PluginOrdner/Resources/frontend/js/*.js und PluginOrdner/Resources/frontend/less/*.less abgelegt werden.

Der Nachteil ist, dass die Dateien global in Shopware eingebunden werden, unabhängig davon, ob das Plugin nur auf einer bestimmten Seite eingreift. Wenn man also im Plugin nur die Artikel Detailseite verändert, werden die Dateien auch auf der Startseite, dem Kontaktformular und allen anderen Seiten eingebunden. ...  mehr lesen