# Block-Listener

**URL:** <https://forum.shopware.com/t/block-listener/6082>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [6. Februar 2012 um 17:42 UTC](https://forum.shopware.com/t/block-listener/6082 "2012-02-06T17:42:35Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dsinf](https://avatars.discourse-cdn.com/v4/letter/d/e0b2c6/32.png) [@dsinf](https://forum.shopware.com/u/dsinf)\
**Post date:** [6. Februar 2012 um 17:42 UTC](https://forum.shopware.com/t/block-listener/6082/1 "2012-02-06T17:42:35Z")

</div>

Hallo, das Registrieren eines Block-Listeners nach [http://wiki.shopware.de/Technisches-Pre … l\_497.html](http://wiki.shopware.de/Technisches-Preview-Shopware-3.5.0%5C_detail%5C_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

---

<div class="post-metadata">

**Author:** ![Heiner\_Lohaus](https://avatars.discourse-cdn.com/v4/letter/h/b5a626/32.png) [@Heiner\_Lohaus](https://forum.shopware.com/u/Heiner_Lohaus)\
**Post date:** [7. Februar 2012 um 09:53 UTC](https://forum.shopware.com/t/block-listener/6082/2 "2012-02-07T09:53:17Z")

</div>

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
