# Smarty Block mit Plugin überschreiben

**URL:** <https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [19. Dezember 2013 um 11:24 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405 "2013-12-19T11:24:57Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![artelier](https://avatars.discourse-cdn.com/v4/letter/a/e9c0ed/32.png) [@artelier](https://forum.shopware.com/u/artelier)\
**Post date:** [19. Dezember 2013 um 11:24 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/1 "2013-12-19T11:24:57Z")

</div>

Hallo Zusammen, ich versuche grade mit einem Plugin einen Block im Listing zu überschreiben. Leider funktioniert das nicht. Wenn ich den gleichen Block mit append versehe geht es. Der View wird also im Listing geladen. Was ich mir vorstellen könnte ist, dass der Block auch geladen wird, dann aber durch eine spätere Instante wieder überschrieben wird. Steht das Plugin nicht ganz oben bei der Vererbung? Was wenn ein weiteres Plugin für ein Template diesen Block überschreibt? Kann ich mich mit meinem Plugin drüber stellen? Vielen Dank.

---

<div class="post-metadata">

**Author:** ![sanymedia](https://avatars.discourse-cdn.com/v4/letter/s/b9bd4f/32.png) [@sanymedia](https://forum.shopware.com/u/sanymedia)\
**Post date:** [19. Dezember 2013 um 12:07 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/2 "2013-12-19T12:07:20Z")

</div>

Hallo, Vielleicht könntest du mal deinen Code dazu Posten, dann gibts auch mehr Antworten denke ich, so ist das etwas schwierig dir zu helfen. Du solltest in dem Bootstrap-Plugin auch den korrekten Event nutzen bsp: ` $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Listing', 'onPostDispatchListing' ); `

---

<div class="post-metadata">

**Author:** ![artelier](https://avatars.discourse-cdn.com/v4/letter/a/e9c0ed/32.png) [@artelier](https://forum.shopware.com/u/artelier)\
**Post date:** [19. Dezember 2013 um 12:27 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/3 "2013-12-19T12:27:48Z")

</div>

Bootstrap ` public function install() { $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Listing', 'onPostDispatchFrontend' ); $this-\>createForm(); return true; } public function createForm() { $form = $this-\>Form(); $form-\>setElement( 'boolean', 'showTop', array( 'label' =\> 'Kategorie Text über dem Listing anzeigen', 'value' =\> false, 'scope' =\> \Shopware\Models\Config\Element::SCOPE\_SHOP ) ); $form-\>setElement( 'boolean', 'showButton', array( 'label' =\> 'Kategorie Text unter dem Listing anzeigen', 'value' =\> true, 'scope' =\> \Shopware\Models\Config\Element::SCOPE\_SHOP ) ); } public function onPostDispatchFrontend (Enlight\_Event\_EventArgs $arguments) { /\*\*@var $controller Shopware\_Controllers\_Frontend\_Index\*/ $controller = $arguments-\>getSubject(); /\*\* \* @var $request Zend\_Controller\_Request\_Http \*/ $request = $controller-\>Request(); /\*\* \* @var $response Zend\_Controller\_Response\_Http \*/ $response = $controller-\>Response(); /\*\* \* @var $view Enlight\_View\_Default \*/ $view = $controller-\>View(); //Check if there is a template and if an exception has occured if(!$request-\>isDispatched()||$response-\>isException()||!$view-\>hasTemplate()) { return; } $config = Shopware()-\>Plugins()-\>Frontend()-\>DohoCattext()-\>Config(); $view-\>DohoCattext = $config; //Add our plugin template directory to load our slogan extension. $view-\>addTemplateDir($this-\>Path() . 'Views/'); $view-\>extendsTemplate('frontend/plugins/doho\_cat\_text/index.tpl'); }` index.tpl ` {\* Category headline \*} {block name="frontend\_listing\_index\_text"} {/block} {block name="frontend\_index\_footer" prepend} {if $DohoCattext.showButton == 1} {include file='frontend/listing/text.tpl'} {/if} {/block}` Wie gesagt die Variablen stehen im Template zur Verfügung. Der Block mit prepend funktioniert auch. Nur der Block {block name=“frontend\_listing\_index\_text”} wird nicht überschrieben.

---

<div class="post-metadata">

**Author:** ![artelier](https://avatars.discourse-cdn.com/v4/letter/a/e9c0ed/32.png) [@artelier](https://forum.shopware.com/u/artelier)\
**Post date:** [19. Dezember 2013 um 15:36 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/4 "2013-12-19T15:36:48Z")

</div>

Ich denke das sich hier ein anderes Plugin nach mir dran hängt. Leider geht die Entwicklerbar auf dem Server nicht und das andere Plugin ist lizenzpflichtig. Kann ich irgendwie alternativ rausfinden an welches Event sich ein Plugin registriert? Welches Plugin wird den bevorzugt wenn sich mehrere an dem gleichen Event registrieren?

---

<div class="post-metadata">

**Author:** ![EikeBrandtWarneke](https://avatars.discourse-cdn.com/v4/letter/e/cdc98d/32.png) [@EikeBrandtWarneke](https://forum.shopware.com/u/EikeBrandtWarneke)\
**Post date:** [19. Dezember 2013 um 15:52 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/5 "2013-12-19T15:52:13Z")

</div>

In der Datenbank stehen alle registrierten Plugins - dazu auch die Reihenfolge der Abarbeitung. Viele Grüße Gesendet von meinem iPhone mit [Tapatalk](http://tapatalk.com/m?id=1)

---

<div class="post-metadata">

**Author:** ![artelier](https://avatars.discourse-cdn.com/v4/letter/a/e9c0ed/32.png) [@artelier](https://forum.shopware.com/u/artelier)\
**Post date:** [19. Dezember 2013 um 16:02 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/6 "2013-12-19T16:02:56Z")

</div>

Hi Aquatuning, meinst du in der s\_core\_plugins? Dann werden die nach ID abgearbeitet? Edit: Habs gefunden unter der subscribes. Das andere Plugin registriert sich am gleichen Event mit Position 50. Meines mit 0. Was muss ich in der Bootstrap hinzufügen damit ich über dem anderen bin?

---

<div class="post-metadata">

**Author:** ![dreischild](https://avatars.discourse-cdn.com/v4/letter/d/da6949/32.png) [@dreischild](https://forum.shopware.com/u/dreischild)\
**Post date:** [19. Dezember 2013 um 17:00 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/7 "2013-12-19T17:00:16Z")

</div>

Hi, schau mal in der Tabelle s\_core\_subscribes nach. Hier werden alle Eevnts gelistet, die registriert sind. Die Spalte “position” bestimmt entsprechend die Reihenfolge. BTW: Die Position kannst du bei der Registrierung explizit mit angeben. Viele Grüße, Dennis

---

<div class="post-metadata">

**Author:** ![artelier](https://avatars.discourse-cdn.com/v4/letter/a/e9c0ed/32.png) [@artelier](https://forum.shopware.com/u/artelier)\
**Post date:** [19. Dezember 2013 um 17:02 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/8 "2013-12-19T17:02:01Z")

</div>

Hi Denis, vielen Dank für deine Antwort. [quote]BTW: Die Position kannst du bei der Registrierung explizit mit angeben.[/quote] Wie?

---

<div class="post-metadata">

**Author:** ![mmmichael](https://avatars.discourse-cdn.com/v4/letter/m/ac91a4/32.png) [@mmmichael](https://forum.shopware.com/u/mmmichael)\
**Post date:** [19. Dezember 2013 um 21:43 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/9 "2013-12-19T21:43:00Z")

</div>

[quote=“artelier”]Hi Denis, vielen Dank für deine Antwort. [quote]BTW: Die Position kannst du bei der Registrierung explizit mit angeben.[/quote] Wie?[/quote] Hi, also dritter Parameter in der subscribeEvent() Funktion. Gruß, Michael

---

<div class="post-metadata">

**Author:** ![Webgreat.de](https://avatars.discourse-cdn.com/v4/letter/w/ac91a4/32.png) [@Webgreat.de](https://forum.shopware.com/u/Webgreat.de)\
**Post date:** [19. Dezember 2013 um 22:21 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/10 "2013-12-19T22:21:25Z")

</div>

Dazu habe ich eine Frage. Wie kann man es anstellen, das verschiedene oder alle Plugin Templates nicht geladen oder entfernt bzw. Überschrieben werden? Hat da jemand eine Idee? Gesendet von meinem iPhone mit [Tapatalk](http://tapatalk.com/m?id=1)

---

<div class="post-metadata">

**Author:** ![artelier](https://avatars.discourse-cdn.com/v4/letter/a/e9c0ed/32.png) [@artelier](https://forum.shopware.com/u/artelier)\
**Post date:** [20. Dezember 2013 um 09:13 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/11 "2013-12-20T09:13:06Z")

</div>

Danke an alle!

---

<div class="post-metadata">

**Author:** ![EikeBrandtWarneke](https://avatars.discourse-cdn.com/v4/letter/e/cdc98d/32.png) [@EikeBrandtWarneke](https://forum.shopware.com/u/EikeBrandtWarneke)\
**Post date:** [20. Dezember 2013 um 09:23 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/12 "2013-12-20T09:23:01Z")

</div>

Plugins erweitern templates ja nicht zum Spaß, sondern weil sie die Anpassungen brauchen… Deswegen einfach die Plugins deaktivieren. Viele Grüße Gesendet von meinem iPhone mit [Tapatalk](http://tapatalk.com/m?id=1)

---

<div class="post-metadata">

**Author:** ![artelier](https://avatars.discourse-cdn.com/v4/letter/a/e9c0ed/32.png) [@artelier](https://forum.shopware.com/u/artelier)\
**Post date:** [20. Dezember 2013 um 09:29 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/13 "2013-12-20T09:29:02Z")

</div>

[quote]Plugins erweitern templates ja nicht zum Spaß, sondern weil sie die Anpassungen brauchen… Deswegen einfach die Plugins deaktivieren.[/quote] Das ist natürlich richtig. Aber wenn man z.B. ein Template, wie das neue Resposive als Plugin vorliegen hat, kann man das ja nicht einfach deaktivieren. Natürlich könnte man das ableiten und so Änderungen vornehmen. Ich wollte aber ein Plugin, welches von einem anderen Plugin ganz bewusst nur einzelne Blöcke überschreibt und dieses per Einstellung gezielt angesprochen werden kann.

---

<div class="post-metadata">

**Author:** ![EikeBrandtWarneke](https://avatars.discourse-cdn.com/v4/letter/e/cdc98d/32.png) [@EikeBrandtWarneke](https://forum.shopware.com/u/EikeBrandtWarneke)\
**Post date:** [20. Dezember 2013 um 10:06 UTC](https://forum.shopware.com/t/smarty-block-mit-plugin-uberschreiben/17405/14 "2013-12-20T10:06:06Z")

</div>

Dann muss dieses Plugin selber Blöcke zur Verfügung stellen. Oder du setzt die Position deines Plugins in der Datenbank höher und es wird dadurch später aufgerufen. Viele Grüße Gesendet von meinem iPhone mit [Tapatalk](http://tapatalk.com/m?id=1)
