Smarty und das Template Snippet

Hallo liebe Shopware-Community! Habe - wie ich durch die Suche erfahren habe - wie viele Andere ein Problem mit Smarty. Die Template Engine kann ein Snippet nicht parsen. Hier mal die genaue Fehlermeldung: Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. Unable to load template snippet 'frontend/listing/Null| frontend/plugins/compare/index.tpl| frontend/plugins/seo/index.tpl| /data/www/.../engine/Shopware/Plugins/Community/Frontend/SwpFindologic/Views/Frontend/includeAll.tpl| frontend/plugins/dropdown\_menu/index.tpl| frontend/plugins/index/home.tpl| frontend/plugins/account/ajax\_login.tpl' in Smarty/sysplugins/smarty\_internal\_templatebase.php on line 127 Und hier der Stacktrace: #0 Enlight/View/Default.php(273): Smarty\_Internal\_TemplateBase-\>fetch() #1 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(212): Enlight\_View\_Default-\>render(Object(Enlight\_Template\_Default)) #2 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(238): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>renderTemplate(Object(Enlight\_Template\_Default)) #3 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>render() #4 [internal function]: Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>onPostDispatch(Object(Enlight\_Controller\_ActionEventArgs)) #5 Enlight/Event/Handler/Default.php(91): call\_user\_func(Array, Object(Enlight\_Controller\_ActionEventArgs)) #6 Enlight/Event/EventManager.php(211): Enlight\_Event\_Handler\_Default-\>execute(Object(Enlight\_Controller\_ActionEventArgs)) #7 Enlight/Controller/Action.php(202): Enlight\_Event\_EventManager-\>notify('Enlight\_Control...', Object(Enlight\_Controller\_ActionEventArgs)) #8 Enlight/Controller/Dispatcher/Default.php(528): Enlight\_Controller\_Action-\>dispatch('indexAction') #9 Enlight/Template/Plugins/function.action.php(96): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #10 cache/templates/frontend\_...\_new\_fr\_FR\_4/43/c8/e0/43c8e062f243e00585e4275cc7b482faac8d9fa2.snippet.ajax\_login.tpl.php(613): smarty\_function\_action(Array, Object(Enlight\_Template\_Default)) #11 Smarty/sysplugins/smarty\_internal\_templatebase.php(180): content\_5463205543e240\_70883222(Object(Enlight\_Template\_Default)) #12 Enlight/View/Default.php(273): Smarty\_Internal\_TemplateBase-\>fetch() #13 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(212): Enlight\_View\_Default-\>render(Object(Enlight\_Template\_Default)) #14 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(238): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>renderTemplate(Object(Enlight\_Template\_Default)) #15 Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>render() #16 [internal function]: Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>onPostDispatch(Object(Enlight\_Controller\_ActionEventArgs)) #17 Enlight/Event/Handler/Default.php(91): call\_user\_func(Array, Object(Enlight\_Controller\_ActionEventArgs)) #18 Enlight/Event/EventManager.php(211): Enlight\_Event\_Handler\_Default-\>execute(Object(Enlight\_Controller\_ActionEventArgs)) #19 Enlight/Controller/Action.php(202): Enlight\_Event\_EventManager-\>notify('Enlight\_Control...', Object(Enlight\_Controller\_ActionEventArgs)) #20 Enlight/Controller/Dispatcher/Default.php(528): Enlight\_Controller\_Action-\>dispatch('indexAction') #21 Enlight/Controller/Front.php(228): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #22 Shopware/Kernel.php(141): Enlight\_Controller\_Front-\>dispatch() #23 shopware.php(91): Shopware\Kernel-\>handle(Object(Symfony\Component\HttpFoundation\Request)) #24 {main} Habe das Problem nur auf der französischen Version der Seite. Die anderen Sprachen funktionieren einwandfrei. Habe auch viele der Foreneinträge durchgeackert und bemerkt, dass bei den meisten in der Smarty-Fehlermeldung zu Beginn direkt ein Template angegeben wird, und nicht nur ‘frontend/listing/null’. Habe auch schon einige Zeit ins Debugging investiert. Kann die Seite ohne Probleme mit Header, Menü & Footer ausgeben lassen. Aber sobald ich den {block name='frontend\_index\_content'}{/block} ausgeben will, bekomm ich die Fehlermeldung. Kann mir vll. jemand von Euch einen Wink in die richtige Richtung geben? Vielen lieben Dank! EDIT: Arbeite übrigens mit Shopware 4.2.1

Hallo liebe Community! Habe erneut ein paar Stunden mit diesem Fehler verbracht und ein paar weitere Foren-Threads durchgeschaut. Bei ein paar dieser Themen stand, dass möglicherweise das Template-File nicht existiert. Aber das kann ja bei dieser Fehlermeldung wie ich sie erhalte gar nicht sein, oder? Da steht ja etwas von ‘frontend/listing/Null’ und kein spezifisches Template-File. Die Dateien die dahinter stehen existieren alle … Weiß vll. jemand von Euch wo oder wie ich noch weiter debuggen könnte? Vielen Dank!

Ich vermute, dass da irgendein Plugin beim registrieren seiner Template-Files in der extendsTemplate-Funktion einen Null-Wert übergibt. Ich würde mal Plugins einzeln deaktivieren und gucken ob das Problem verschwindet und wenn ja bei welchem. Anfangen würde ich dabei mit selbst geschriebenen, sofern vorhanden. Bei dem Plugin dann prüfen ob da irgendwo ein Fehler bei der View-Registrierung ist. Ist aber nur eine Vermutung. Edit: eventuell tritt der Fehler auch auf wenn in einem Template per {include } der Pfad auf frontend/listing/Null verweist, könnte also auch in irgendeinem Template liegen.

1 „Gefällt mir“

[quote=“t2oh4e”]Edit: eventuell tritt der Fehler auch auf wenn in einem Template per {include } der Pfad auf frontend/listing/Null verweist, könnte also auch in irgendeinem Template liegen.[/quote] Dieses Update deiner Antwort ist die Lösung auf das Problem! Vielen Dank! Es gibt in unserem Projekt ein PHP-File, welches mit loadTemplate ein File laden will. Der Pfad zu dieser Datei wird durch einen String samt dem Inhalt einer Variable generiert: '/templates/'.$variable Und der Inhalt dieser Variable war in diesen einem speziellen Fall null. Danke nochmal für die Hilfe!