Hi, ich {extende} im Plugin die footer-navigation.tpl mit einer {function name=xy}Textbausteine{/function} und rufe sie danach mit {call name=xy} auf. Die in der Funktion enthaltenen Textbausteine werden angelegt, aber im gesammten wird die Funktion und deren Inhalt und alles was danach kommen sollte nicht im Frontend ausgegeben, stattdessen ein 503 unavailable. Hat jemand eine Idee?
Danke für den Tip. Folgenden Fehler wirft das System.
Fatal error: Uncaught Error: Call to undefined function smarty_template_function_beispielFunktion() in /var/www/example.com/public_html/shop/var/cache/production_201702141330/templates/frontend_Example_de_DE_1_secure/b9/21/c5/b921c5f07ce1b5735d3375bc2ca4976ea6a900b1.snippet.index.tpl.php:2176 Stack trace: #0 /var/www/example.com/public_html/shop/var/cache/production_201702141330/templates/frontend_Example_de_DE_1_secure/b9/21/c5/b921c5f07ce1b5735d3375bc2ca4976ea6a900b1.snippet.index.tpl.php(2086): content_58aab2e7cf6011_86180853(Object(Enlight_Template_Default)) #1 /var/www/example.com/public_html/shop/var/cache/production_201702141330/templates/frontend_Example_de_DE_1_secure/b9/21/c5/b921c5f07ce1b5735d3375bc2ca4976ea6a900b1.snippet.index.tpl.php(553): content_58aab2e7cf3615_08806096(Object(Enlight_Template_Default)) #2 /var/www/example.com/public_html/shop/engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php(180): content_58aab2e7d777e4_77970896(Object(Enlight_Template_Defaul in /var/www/example.com/public_html/shop/var/cache/production_201702141330/templates/frontend_Example_de_DE_1_secure/b9/21/c5/b921c5f07ce1b5735d3375bc2ca4976ea6a900b1.snippet.index.tpl.php on line 2176
503 Service Unavailable
Kurios ist ja, dass die Textbausteine sich automatisch im Backend einpflegen, aber trotzdem ein Fehler kommt?
Die Textbausteine werden (glaube ich) beim parsen bzw. „kompilieren“ der Template Dateien angelegt. Werfe doch mal einen Blick ins Cache Verzeichnis. Dort sind ja die .php Dateien, die aus den Smarty .tpl Dateien entstanden sind. Ich denke dort wurden die Textbausteine schon durch die Texte ersetzt.
Zeig uns am besten mal deine komplette footer-navigation.tpl. Ich kann mir vorstellen, dass du die Funktion außerhalb eines Blocks definierst (Das ist - wenn man extends benutzt - nicht erlaubt). Alles was außerhalb eines Blocks liegt wird bei „extends“ verworfen. => Smarty kennt deine Funktion nicht mehr.
wie simkli schon sagt: da du die Vererbung anwendest und die Funktion außerhalb eines Blocks implementierst, ignoriert er die Funktion und kennt Sie somit nicht, da er ja die Bare - Datei nutzen und nur bei dieser den Block mit deinem Inhalt überschreiben soll (und gibt deshalb die Fehlermeldung oben aus, da die Funktion ja außerhalb des Blocks ist und somit nicht bekannt).
Hi, @sschreier . Wie könnte ich es dann Elegant lösen, da ich 4 Blöcke habe und jedes mal die function innerhalb der Blöcke aufgerufen werden soll? Danke euch.
Eigentlich müsste es reichen, die Funktion im ersten Block, den du überschreibst, zu definieren. Danach solltest du das nicht nochmal tun müssen.
Wichtig ist nur, dass die Funktion vor dem Aufruf definiert wird.