5.3.2, unser Freund, der unknown tag "s"

@Hansi10 schrieb:

Hallo, habe nun auch vor 4 Tagen das Update auf 5.3.4 gemacht. Anfangs lief mein Template nicht richtig, konnte aber den Fehler in meinem Theme finden. Jetzt schien alles zu laufen, bis ich bemerkt habe, dass ein Fehler auftritt, wenn man im Offcanvas Warenkorb auf „Warenkorb bearbeiten“ klickt. Folgendes wird ausgegeben:

Fatal error: Uncaught exception ‚SmartyException‘ with message ‚directory ‚/[Pfad]themes/Frontend/MeinTheme‘ not allowed by security setting‘ in /[Pfad]engine/Library/Smarty/sysplugins/smarty_security.php:381
Stack trace:
#0 /[Pfad]engine/Library/Smarty/sysplugins/smarty_internal_resource_file.php(33): Smarty_Security->isTrustedResourceDir(‚/[Pfad]_…‘)
#1 /[Pfad]engine/Library/Smarty/sysplugins/smarty_resource.php(532): Smarty_Internal_Resource_File->populate(Object(Smarty_Template_Source), NULL)
#2 /[Pfad]engine/Library/Smarty/sysplugins/smarty_internal_resource_extends.php(41): Smarty_Resource::source(NULL, Object(Enlight_Template_Manager), ‚‘)
#3 /[Pfad]engine/Library/Enlight/Components/Snippet/Resource.php(76): Smarty_Intern in /[Pfad]engine/Library/Smarty/sysplugins/smarty_security.php on line381

Beim Responsive-Theme ist der Fehler nicht. Muss also irgendwie an meinem Template liegen bzw. an einer Einstellung. An den Plugins liegt es vermutlich nicht, weil ich die meisten testweise deaktiviert habe (z.B. PayPal Plus).

Wie ich gesehen habe, läuft ansonsten alles so ziemlich fehlerfrei.

Gruß

Hansi

Sind alle Plugins aktuell? Ich hatte ein ähnliches Problem mit dem Plugin „Varianten-Vorschau im Listing“ 

Sind alle Plugins aktuell? Ich hatte ein ähnliches Problem mit dem Plugin „Varianten-Vorschau im Listing“ 

Ich habe eigentlich nur „Google Enhanded Ecommerce“ als Drittanbieter-Plugin installiert. Dieses habe ich schon testweise deaktiviert. Alles andere sind die shopware AG notwendigen Plugins von Cron über Shopware Import/Export bis zu InputFilter. Alles ist auf dem aktuellsten Stand. Ich schau mir noch mal mein eigenes Template genauer an. Vielleicht habe ich da einen Fehler eingebaut. Ich habe nur gehofft, man kann aus der Fehlermeldung evtl. wie in einem Kaffeesatz lesen, wo es denn hakt.

Suche mal nach “not allowed by security setting”

1 „Gefällt mir“

Ok, ich habe die SmartySecurity abgestellt und damit vorerst Ruhe - wohlwissentlich, dass beim nächsten Update der Fehler vermutlich wieder auftritt. Es sei denn, es wäre ein SWAG-Problem gewesen, welches dann behoben wäre?

Danke.

Du könntest schauen welche Anpassungen am Theme das Problem verursachen.

Vielleicht verursacht dies einen Templatefehler: Ich habe auf der Detailseite einen Block überschrieben und deshalb bei meinem Theme unter frontend/detail eine index.tpl erstellt mit folgendem Verweis:

{extends file='parent:frontend/detail/index.tpl'}

Der Verweis aus der index.tpl aus Bare/frontend/detail lautet aber so:

{extends file='frontend/index/index.tpl'}

Warum ich das damals so gelöst hatte, weiß ich jetzt nicht mehr, aber ich vermute dass evtl. meine Überschreibung an dieser Stelle verkehrt ist?

Erste Zeile ist schon richtig.
 

{extends file='parent:frontend/detail/index.tpl'}

BARE hat ja kein parent zum Überschreiben, ändern, sondern eben nur die Dateien aus dem eigenen Pfad.

Wenn ich das richtig sehe (kann mich auch komplett irren) ist bei allen Fehler der Punkt

directory 

dabei, und diese SmartyFunktion wird in den 

engine/Library/Smarty/sysplugins/smarty_security.php

als unzulässig eingestuft. Sprich wird diese Funktion irgendwo benutzt?

@SwNewbie schrieb:

Wenn ich das richtig sehe (kann mich auch komplett irren) ist bei allen Fehler der Punkt

directory

dabei, und diese SmartyFunktion wird in den 

engine/Library/Smarty/sysplugins/smarty_security.php

als unzulässig eingestuft. Sprich wird diese Funktion irgendwo benutzt?

Sehr gute Analyse, „directory“ ist nicht in den erlaubten Funktionen enthalten.
Sollte sie zwingend erforderlich sein, dann kann sie in der Datei „/engine/Shopware/Configs/smarty_functions.php“ hinzugefügt werden.

Und um zum eigentlich Thema zurück zu kommen.

Für das Plugin “SwagVatIdValidation” wurde die Version 1.1.6 mit dem Hinweis auf diesen Fehler
http://store.shopware.com/swag161736212188/umsatzsteuer-id-pruefung.html

Damit wären alle bisher bekannten Plugins, die diesen Fehler erzeugt haben aktualisiert.
Ich möchte mich noch einmal bei allen Beteiligten hier im Thema bedanken, ohne Euch wären bestimmt noch viele weite Shopware-Kunden verzweifelt.
Auch ein Danke an Shopware, für die Hilfe bei der Fehlersuche und die raschen Updates.

Drücken wir jetzt alle mal die Daumen das es das war.

Wer erzwingt aber nun die Funktion „directory“? Ich war das bestimmt nicht ;-). Kann dann ja nur von einem Fremd-Plugin bzw. SWAG-Plugin kommen. Oder könnte das evtl. mit einer https-Umleitung oder sonstwas zusammenhängen?

Schick mir mal dein Theme und wie ich das nachstellen kann an forum@shopware.com

@Hansi10 schrieb:

Hallo, habe nun auch vor 4 Tagen das Update auf 5.3.4 gemacht. Anfangs lief mein Template nicht richtig, konnte aber den Fehler in meinem Theme finden. Jetzt schien alles zu laufen, bis ich bemerkt habe, dass ein Fehler auftritt, wenn man im Offcanvas Warenkorb auf „Warenkorb bearbeiten“ klickt. Folgendes wird ausgegeben:

Fatal error: Uncaught exception ‚SmartyException‘ with message ‚directory ‚/[Pfad]themes/Frontend/MeinTheme‘ not allowed by security setting‘ in /[Pfad]engine/Library/Smarty/sysplugins/smarty_security.php:381
Stack trace:
#0 /[Pfad]engine/Library/Smarty/sysplugins/smarty_internal_resource_file.php(33): Smarty_Security->isTrustedResourceDir(‚/[Pfad]_…‘)
#1 /[Pfad]engine/Library/Smarty/sysplugins/smarty_resource.php(532): Smarty_Internal_Resource_File->populate(Object(Smarty_Template_Source), NULL)
#2 /[Pfad]engine/Library/Smarty/sysplugins/smarty_internal_resource_extends.php(41): Smarty_Resource::source(NULL, Object(Enlight_Template_Manager), ‚‘)
#3 /[Pfad]engine/Library/Enlight/Components/Snippet/Resource.php(76): Smarty_Intern in /[Pfad]engine/Library/Smarty/sysplugins/smarty_security.php on line381

Beim Responsive-Theme ist der Fehler nicht. Muss also irgendwie an meinem Template liegen bzw. an einer Einstellung. An den Plugins liegt es vermutlich nicht, weil ich die meisten testweise deaktiviert habe (z.B. PayPal Plus).

Wie ich gesehen habe, läuft ansonsten alles so ziemlich fehlerfrei.

Gruß

Hansi

 

Bei dir ist die Datei /frontend/checkout/table_footer.tpl fehlerhaft. Dort ist das Extends nicht richtig:

{extends file='parent:frontend/checkout/cart'}

Sollte ausreichen, wenn du das abänderst:

{extends file='parent:frontend/checkout/table_footer.tpl'}

 

1 „Gefällt mir“

Danke Moritz! Da darf ich mal sagen: “Super Service”. Ich habe die template security wieder aktiviert und der Fehler ist weg. Künftig werde ich bei solchen Fehlern mein Theme genauer inspizieren. Jetzt weiß ich aber, wo man anfangen muß.

Ich möchte nochmal kurz das Post von DennisG hervorheben, effektiv war das die Lösung. Durch Anpassung der config.php konnte die Fehlerbehandlung umgestellt und damit eine brauchbare Fehlermeldung in den Logdateien ausgegeben werden.
Dankeschön.

@DennisG schrieb:

Das ist natürlich nur eine Notlösung… Wird bei einm Update wieder überschrieben. Ihr solltet wenn dieser Fehler reproduzierbar ist die Shopware Config.php anpassen.

‚phpsettings‘ => [
‚display_errors‘ => 1,
],
// Frontend display Exceptions
‚front‘ => [
‚noErrorHandler‘ => true,
‚throwExceptions‘ => true,
],

(Cache leeren) und dann den Fehler Reproduzieren. Durch die anpassung der ShopConfig solltet ihr eine Richtige Fehlermeldung bekommen die aussagekräfig ist. Also welches Plugin zu früh versucht ein Template zu laden bzw. zu Spät das Template Directory registriert. 

1 „Gefällt mir“

Nur als Hinweis, PP+ in der aktuellen Version ist mit einem BUG versehen: Shopware Issuetracker. Betrifft in erster Linie Mobil, hier werden die PP+ Zahlungsarten ggf. nicht angezeigt bzw. geladen. Haben wir gestern entdeckt und wurde heute vom Support bestätigt.

Bei uns lag es am Template.

Kann man herausfinden, wo in welcher Änderung sich der Fehler verbirgt?

Ich hab jetzt nicht alles gelesen. Ist die Fehlerursache inzwischen bekannt und behoben oder noch nicht. Plane aktuell das Update von 5.2.20 auf 5.3.x 

Folgendes Problem auch hier.

Nach Upgrade auf 5.3.4 bekam ich seit heute Morgen auch immer wieder Fehlermeldungen (s.u.)

Vorauszuschicken wäre, dass ich gestern Nachmittag PaypalPlus installiert habe, was im Weiteren keine Probleme gebracht hatte.

Erst nach dem Upgrade auf 5.3.4 kam es zur Fehlermeldung.

Im Übrigen ging das soweit, dass offenbar sogar die SEO-URL´s der Bog-Beiträge einen 404-Fehler ausgelöst hatten. Das War dann allerdings nach Neu-Aufbau des SEO-Index und anschließender Neu-Kompilierung der Shop-Dateien behoben. 

Nicht jedoch der unten aufgeführte Fehler, der sich jedoch mit einer weiteren Meldung „abgewechselt“ habe, die ich leider vergessen habe, zu kopieren.

Es lässt sich jedoch bemerken, dass die Fehlermeldungen tatsächlich dann auftraten, wenn aus dem Offcanvas-Warenkorb auf „Warenkorb bearbeiten“ und dann zurück auf die Startseite des Shops gewechselt wurde (Kategorie- und Detailseiten funktionierten weiterhin wie gewohnt). 

Der auf Seite 5 dieses Threads gepostete Workaround

@DennisG schrieb:

Das Entfernen / ausschalten der SmartySecurity und danach Cach leeren sollte eigentlich helfen. Alternativ sollte es helfen wenn ihr in der

Datei:  /…engine/Library/Smarty/sysplugins/smarty_security.php

die Methode: isTrustedResourceDir anpasst und einfach ein return true einbaut.

public function isTrustedResourceDir($filepath)
{
return true; //

Zur weitern Fehleranalyse könnt ihr auch das Plugin von shyim installieren: https://github.com/shyim/whoops-for-shopware

Aktuell gehen wir davon aus das dieser Check vor dem hinzufügen der Template Ordner von Plugins läuft und dadurch der Fehler geworfen wird.

hat hier zunächst einmal Abhilfe geschaffen.

Hier noch die Fehlermeldung der Vollständigkeit halber. 

Fatal error : Uncaught SmartyCompilerException: Syntax Error in template „/var/www/clients/client2042/web4262/web/themes/Frontend/Bare/frontend/index/index.tpl“ on line 7 „<html class="no-js" lang="{s name=‚IndexXmlLang‘}{/s}" itemscope="itemscope" itemtype="http://schema.org/WebPage&quot;&gt;“ unknown tag „s“ in /var/www/clients/client2042/web4262/web/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php:657 Stack trace: #0 /var/www/clients/client2042/web4262/web/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(443): Smarty_Internal_TemplateCompilerBase->trigger_template_error(‚unknown tag „s“‘, 7) #1 /var/www/clients/client2042/web4262/web/engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(2388): Smarty_Internal_TemplateCompilerBase->compileTag(‚s‘, Array) #2 /var/www/clients/client2042/web4262/web/engine/Library/Smarty/sysplugins/smarty_internal_templa in  /var/www/clients/client2042/web4262/web/engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php  on line  657

Edit:

jetzt habe ich eben gemerkt, dass die o.g. zweite Fehlermeldung noch ein einem anderen Browser-Fenster vorhanden war:

Fatal error : Uncaught SmartyException: directory ‚/var/www/clients/client2042/web4262/web/engine/Shopware/Plugins/Community/Frontend/KamoProductShortDescription/Views/frontend/listing/product-box/box-basic.tpl‘ not allowed by security setting in /var/www/clients/client2042/web4262/web/engine/Library/Smarty/sysplugins/smarty_security.php:381 Stack trace: #0 /var/www/clients/client2042/web4262/web/engine/Library/Smarty/sysplugins/smarty_internal_resource_file.php(33): Smarty_Security->isTrustedResourceDir(‚/var/www/client…‘) #1 /var/www/clients/client2042/web4262/web/engine/Library/Smarty/sysplugins/smarty_resource.php(532): Smarty_Internal_Resource_File->populate(Object(Smarty_Template_Source), NULL) #2 /var/www/clients/client2042/web4262/web/engine/Library/Smarty/sysplugins/smarty_internal_resource_extends.php(41): Smarty_Resource::source(NULL, Object(Enlight_Template_Manager), ‚/var/www/client…‘) #3 /var/www/clients/client2042/web4262/web/engine/Library/Enlight/Components/Snippet/Resource.php(76): Smarty_Internal_Res in  /var/www/clients/client2042/web4262/web/engine/Library/Smarty/sysplugins/smarty_security.php  on line  381

Hallo,

dort hast du doch aber schon einen Übeltäter: Das Plugin KamoProductShortDescription nutzt eine Funktion, die aufgrund der Security Einstellungen von Shopware 5.3 nicht mehr zugelassen ist. Hier musst du also entweder das Plugin deaktivieren oder den Hersteller des Plugins anschreiben, das er das Problem beseitigen soll.

Bei der oberen Meldung dagegen würde ich mal in der genannten Datei nachsehen und dies prüfen.

Beste Grüße

Sebastian