Hallo, das Registrieren eines Block-Listeners nach http://wiki.shopware.de/Technisches-Pre … l_497.html funktioniert nicht. Code aus dem Wiki: $name = 'index\_header\_meta\_tags'; // Name des Template-Blocks $listener = 'Shopware\_Plugins\_Facebook::getMetaTags'; // Listener der aufgerufen werden soll $type = Enlight\_Core\_Template\_BlockHandler::TypeReplace; // Typ der Ersetzung $handler = new Enlight\_Core\_Template\_BlockHandler ($name, $listener, $type); Shopware()-\>Subscriber()-\>subscribeBlock($handler);
1.) In der v 3.5.6 existiert nur eine Enlight_Template_BlockHandler-Klasse (ohne _Core_) 2.) Des Weiteren ist in der Subscriber-Klasse keine subscribeBlock-Methode vorhanden. Wird die Funktion nicht mehr verwendet oder sollen Hooks stattdessen verwendet werden (extendsTemplate)? Viele Grüße
Hi, statt dem Block-Listener gibt es in der 3.5 die Methode „extendsBlock“ im View. Die kann ähnlich wie die extendsTemplate-Methode verwendet werden. Die Methode hat folgende Parameter: $view-\>extendsBlock(BLOCK\_NAME, TEMPLATE, 'replace' / 'append' / 'prepend');
Beispiel: [code] static 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‘ || $request->getControllerName() != ‚index‘ ) { return; } $view->extendsTemplate(dirname(__FILE__).’/plugin.tpl’); $view->extendsBlock(„frontend_index_logo“,’
Hello World 2
',‚replace‘); } [/code] Heiner