Guten Morgen, gibt es eine alternative Möglichkeit auf die View() zuzugreifen, um ein Template zu erweitern? Konkret geht es um $view-\>extendsTemplate()
aber mit dem Problem, dass ich in der kleinen Helferfunktion innerhalb der Bootstrap kein Enlight_Event_EventArgs zur Verfügung habe. Übergebe ich der Funktion z.B. “$view” als Argument, erhalte ich folgende Fehlermeldung: Fatal error: Call to a member function extendsTemplate() on a non-object
Du musst dich doch sowieso an einen controller event hängen, um deine view zu erweitern. In deinem event hast du dann die view - und die kannst du als Parameter an deine Hilfsfunktion weiterreichen. Zeig doch mal deinen Quellcode. Viele Grüße
Also so sollte es aussehen, allerdings klappt die Übergabe einfach nicht: private function loadTempates($view) { if ($this-\>\_cssLoaded == 0) { $view-\>extendsTemplate('frontend/plugins/' . strtolower($this-\>\_pluginName) . '/index/header.tpl'); $this-\>\_cssLoaded = 1; } } public function onPostDispatch(Enlight\_Event\_EventArgs $args) { $request = $args-\>getSubject()-\>Request(); $response = $args-\>getSubject()-\>Response(); $view = $args-\>getSubject()-\>View(); if (!$request-\>isDispatched() || $response-\>isException() || $request-\>getModuleName() != 'frontend' || !$view-\>hasTemplate()) { return; } $view-\>addTemplateDir($this-\>Path() . 'Views/'); //to avoid loading templates more then once $this-\>loadTempates($view); $view-\>extendsTemplate('frontend/plugins/' . strtolower($this-\>\_pluginName) . '/plugins/advanced\_menu/index.tpl'); }