nachdem ich das Update von 5.2.22 auf 5.3.1 durchgeführt habe, erhalte ich beim Aufruf von Seiten mit Artikeln oder Kategorie-Startseiten folgende Fehlermeldung :
Fatal error: Uncaught exception 'SmartyException' with message 'directory '/home/almute/www/test_shop/themes/Frontend/Yachting' not allowed by security setting' in /home/almute/www/test_shop/engine/Library/Smarty/sysplugins/smarty_security.php:381
Stack trace:
#0 /home/almute/www/test_shop/engine/Library/Smarty/sysplugins/smarty_internal_resource_file.php(33): Smarty_Security->isTrustedResourceDir('/home/almute/ww...')
#1 /home/almute/www/test_shop/engine/Library/Smarty/sysplugins/smarty_resource.php(532): Smarty_Internal_Resource_File->populate(Object(Smarty_Template_Source), NULL)
#2 /home/almute/www/test_shop/engine/Library/Smarty/sysplugins/smarty_internal_resource_extends.php(41): Smarty_Resource::source(NULL, Object(Enlight_Template_Manager), '')
#3 /home/almute/www/test_shop/engine/Library/Enlight/Components/Snippet/Resource.php(76): Smarty_Internal_Resource_Extends->populate(Object(Smarty_Template_Source), NULL)
#4 /home/almute/www/test_shop/engine/Library/Smarty/sysplugins/smarty_resource.php(532): Enlight_Compon in /home/almute/www/test_shop/engine/Library/Smarty/sysplugins/smarty_security.php on line 381
Die Seiten enthalten keinen Code, “head” und “body” sind komplett leer.
Die Start-Seite des Shops zeigt die Elemente oben und unten, aber keinen eigentlichen Inhalt, Standardseiten wie AGB sind in Ordnung.
Was ist falsch? Wo bzw. wie kann ich die security settings ändern, damit auf mein Template zugegriffen werden kann?
Danke für Deine Antwort.
Ich hatte während der Installation keine unzulässigen Plugins im System und verwende auch keines, das nicht von Shopware ist. Alle Voraussetzungen waren erfüllt.
An der Erweiterung in der config.php für den Smarty security mode habe ich mich schon versucht, bisher aber noch keinen Erfolg. Ich vermute, dass ich für “dirname” einen Verzeichnisnamen einsetzen muss - nur welchen?
Dann gibt es dort den Hinweis “Load templates from non-registered directories”, den ich auch schon an anderer Stelle gefunden habe. Hier fehlt mir leider die Info, in welcher Datei diese Änderung vorgenommen werden muss.
Bei Verwendung des Standard Responsive Theme anstelle meines Themes funktionieren schon mal ein paar Seiten mehr - aber nicht alle.
Das ist meines Erachtens aber auch klar, denn die Meldung lautet ja _‘directory ‘/home/almute/www/test_shop/themes/Frontend/Yachting’ not allowed by security setting’ _Frontend/Yachting ist genau der Ordner, in dem meine individuellen Template-Dateien liegen.
Ich habe genau das gleiche Problem und weiss jetzt auch gar nicht was ich machen soll. Leider hat die Berechtigung eines Benutzers mal gar nicht gegriffen und trotz der “Nicht-Berechtigung” fuer Updates wurde unser Shop geupdatet.
Unser eigenes Theme wurde aber nicht als Plugin entwickelt. Bedeutet das, dass ich es als Plugin schreiben muss um auf die Controller Actions zuzugreifen? Und weiter:
Ich habe noch gelesen, das alle Plugins, die nicht vond er Shopware Seite kommen automatisch deaktiviert werden udn als nicht sicher kekennzeichnet werden. Ist das wahr?
Wenn ja bedeutet das doch, dass custom Themes und Plugins gar nicht mehr moeglich sind?!?
Automatisch wird nichts deaktiviert, es wird lediglich bei einem Update hingewiesen, dass der Store die Plugins nicht kennt. Es gibt einen Sicherheitsmodus im Plugin-Manager, den man zum testen eines Fehlers aktivieren kann, der dann alle Plugins in Quarantäne steckt. Das hat aber nichts mit der generellen Funktion zu tun.
Die Frage passt auch aktuell so garnicht zu dem Problem in diesem Thread.
Bei Verwendung des Standard Responsive Theme anstelle meines Themes funktionieren schon mal ein paar Seiten mehr - aber nicht alle.
Das ist meines Erachtens aber auch klar, denn die Meldung lautet ja _‚directory ‚/home/almute/www/test_shop/themes/Frontend/Yachting‘ not allowed by security setting‘ _Frontend/Yachting ist genau der Ordner, in dem meine individuellen Template-Dateien liegen.
Um dazu die Frage nocheinmal zu stellen, die immer noch nicht beantwortet wurde:
Was muss getan werden um dieses Problem zu loesen. Hier wurde leider nur ein Link zum Updateguide fuer Plugins gepostet und keine Antwort auf das eigentliche Problem gegeben.
Meine Frage ist (um es etwas klarer auszudruecken): Muss das Theme als Plugin bereitgestellt/entwickelt werden und die noetigen Template Directories dann in diese Plugin bootstrap.php hinzugefuegt werden, oder wie behebt man nun das Problem, dass ein Custom Theme nicht mehr geladen werden kann, da sonst der im Thread angegebene Fehler ausgworfen wird?
Man braucht kein Plugin für Custom Theme. Ihr müsst individuell überprüfen, welche Template-Anpassung in eurem Custom-Theme das Problem verursacht. Die Custom Themes können weiter so wie zuvor genutzt werden, nur irgendeine der Änderungen die dort umgesetzt sind, sind halt nicht mehr kompatibel. Ergo: Schrittweise die Anpassungen zurückbauen bis man den Übeltäter findet.
Was mich wundert, ist diese merkwürdige Meldung _not allowed by security setting. _Beim ersten Versuch, Seiten im Frontend aufzurufen, kamen konkrete Meldungen, was in bestimmten tpl-Dateien meines Custom-Themes nicht in Ordnung ist. Es konnte also sehr wohl auf mein Custom-Theme zugegriffen werden.
Diese Fehler habe ich Schritt für Schritt korrigiert, bis dann die obige Meldung kam. Diese ist nun so schwammig, dass ich nicht weiß, wo ich jetzt noch nach einem Fehler suchen soll.
mir ist der Fehler schon mal unter gekommen, als in einer Template Datei ein Tippfehler vorhanden war. Statt {extends file=„parent:frontend/detail/index.tpl“} stand dort {extends file=„parent:frontent/detail/index.tpl“}
Beachtet das falsch geschriebene „frontend“. Die Fehlermeldung ist natürlich alles andere als hilfreich. Ich habe dazu auch bereits ein Ticket angelegt: Shopware Issuetracker
Achtung! “dirname” ist der Name einer PHP Funktion, die durch unsere Whitelist normalerweise nicht mehr verwendet werden kann. Das hat nichts mit Verzeichnispfaden von irgendwas zu tun Ist hier also nur beispielhaft aufgeführt
Du kannst dort nur PHP Funktionen eintragen. Solltest du verbotene PHP Funktionen in deinen Templates nutzen, hättest du eine andere Fehlermeldung bekommen. Daher wird es dir vermutlich nichts nutzen, dort einen Eintrag zu machen.
Ich würde noch mal deine Templates genau untersuchen. Vielleicht hattest du ja auch wie in meinem Fall einfach nur einen Tippfehler im Template
Ja, ich werde mal alle Template-Dateien durchgehen.
Nur frage ich mich, weshalb ein Tippfehler, der schon seit Monaten bis Jahren im Template ist, sich nach einem Update so fatal auswirken kann. Den Fehler mit falsch geschriebenem frontend habe ich auf jeden Fall nicht in meinen Dateien. Es muss dann wohl ein anderer sein.