# Template erweitern

**URL:** <https://forum.shopware.com/t/template-erweitern/34872>\
**Category:** Programmierung\
**Created:** [27. Februar 2016 um 12:33 UTC](https://forum.shopware.com/t/template-erweitern/34872 "2016-02-27T12:33:30Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [27. Februar 2016 um 12:33 UTC](https://forum.shopware.com/t/template-erweitern/34872/1 "2016-02-27T12:33:30Z")

</div>

Hi, ich möchte beim Checkout das RegistrierFormular erweitern. Unter der Passwort-Desciption im Reg-Formular soll etwas einfügen, also wäre es aus der  
**frontend/register/personal\_fieldset.tpl** der Block **_frontend\_register\_personal\_fieldset\_password\_description_**

In meinem Plugin habe ich folgende Verzeichniss-Struktur:  
Views/frontend/myextension/index.tpl  
… in der index.tpl steht einfach nur

```
{block name='frontend_register_personal_fieldset_password_description'}
{$myvar}################
{/block}

```

in meiner Bootstrap habe ich den \_ **Enlight\_Controller\_Action\_PreDispatch\_Frontend\_Checkout** \_ sibscribed:

```
public function onPreDispatchCheckout(Enlight_Event_EventArgs $arguments) {
       
        $subject = $arguments->getSubject();
        $request = $subject->Request();
        $response = $subject->Response();
        $action = $request->getActionName();
        $view = $subject->View();  	
	
	$view->addTemplateDir($this->Path() . 'Views/');	
	$view->extendsTemplate('frontend/plugins/myextension/index.tpl');	
	$view->assign('myvar', 'asdasdasdasdasdasdasd');	
}

```

&nbsp;

Er will einfach nicht den Block ersetzen. Kann mich mal jemand in die richtige Richtung treten?

&nbsp;

Lg

---

<div class="post-metadata">

**Author:** ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)\
**Post date:** [27. Februar 2016 um 13:17 UTC](https://forum.shopware.com/t/template-erweitern/34872/2 "2016-02-27T13:17:22Z")

</div>

Hallo,

erst einmal hast du&nbsp;2 gravierende Fehler/Sachen, die man bei Shopware 5 Plugins nicht mehr verwenden darf:

(1) extendsTemplate() soll wegen der Möglichkeit des Überschreibens der&nbsp;Plugin-Templatedateien&nbsp;nicht mehr verwendet werden

(2) die Plugin-Templatedateien werden genau dort abgespeichert, wo Sie sich im Theme befinden, ohne irgendeinen Zwischenordner wie “plugins/myextension” oder so.

&nbsp;

Am besten du arbeitest erst einmal das hier durch, dann wären die Fehler auch nicht passiert:&nbsp;[Developer Guides](https://developers.shopware.com/developers-guide/) , speziell:&nbsp;[Plugin quick Startup Guide](https://developers.shopware.com/developers-guide/plugin-quick-start/) .

&nbsp;

Beste Grüße

Sebastian

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [27. Februar 2016 um 13:39 UTC](https://forum.shopware.com/t/template-erweitern/34872/3 "2016-02-27T13:39:57Z")

</div>

hi,

ja das hatte ich bereits versucht, aber es hat nicht funktioniert. Also im Plugin die Verzeichniss-Struktur **_Views/frontend/register/personal\_fieldset.tpl_** und in der Bootstrap

```
public function onPreDispatchCheckout(Enlight_Event_EventArgs $arguments) {
       
        $subject = $arguments->getSubject();
        $request = $subject->Request();
        $response = $subject->Response();
        $action = $request->getActionName();
        $view = $subject->View(); 
    
		
	//Add our plugin template directory to load our slogan extension.
	$view->addTemplateDir($this->Path() . 'Views/');	
	
	$view->assign('myvar', 'asdasdasdasdasdasdasd');
}

```

aber das macht er nicht 😕

---

<div class="post-metadata">

**Author:** ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)\
**Post date:** [27. Februar 2016 um 13:44 UTC](https://forum.shopware.com/t/template-erweitern/34872/4 "2016-02-27T13:44:10Z")

</div>

Hallo,&nbsp;

das wäre aber zumindestens einmal der richtige Weg.

Wie sieht denn die dazugehörige Templatedatei aus? Steht da auch:

{extends file="parent:frontend/register/personal\_field}

etc drin? Gibt es den Block in der Basis-Templatedatei überhaupt?

Beste Grüße

Sebastian

---

<div class="post-metadata">

**Author:** ![Shopwareianer](https://avatars.discourse-cdn.com/v4/letter/s/b4bc9f/32.png) [@Shopwareianer](https://forum.shopware.com/u/Shopwareianer)\
**Post date:** [27. Februar 2016 um 14:41 UTC](https://forum.shopware.com/t/template-erweitern/34872/5 "2016-02-27T14:41:04Z")

</div>

Schau mal hier hast du ein sehr einfaches Plugin, was das ganze etwas näher erleuchtern sollte:

[https://github.com/hostianer/HostiConditions](https://github.com/hostianer/HostiConditions)

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [29. Februar 2016 um 07:58 UTC](https://forum.shopware.com/t/template-erweitern/34872/6 "2016-02-29T07:58:43Z")

</div>

Hi,

Habe mich nochmal durch die Beispiele durchgeackert, aber irgendwas ist faul… wenn ich mein vererbtes Template abschalte - also das standard Responsive verwende - wird dieses korrekt erweitert. Wenn ich mein vom Responsive vererbtes Template einschalte - hier liegt eine geringfügig abgeänderte **_register/personal\_fieldset.tpl_** - klappt es nicht. Der BLock den ich überschreibe bzw erweitere (append) ist drin.

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [29. Februar 2016 um 12:04 UTC](https://forum.shopware.com/t/template-erweitern/34872/7 "2016-02-29T12:04:19Z")

</div>

Hi kayyy,

leider funktioniert auch dein Beispiel nur dann, wenn im eigenen Template-Ordner die Datei welche ich überschreiben/erweitern will, nicht vorliegt.

---

<div class="post-metadata">

**Author:** ![Shopwareianer](https://avatars.discourse-cdn.com/v4/letter/s/b4bc9f/32.png) [@Shopwareianer](https://forum.shopware.com/u/Shopwareianer)\
**Post date:** [29. Februar 2016 um 12:08 UTC](https://forum.shopware.com/t/template-erweitern/34872/8 "2016-02-29T12:08:41Z")

</div>

@Mogly Meinst du, dass das Plugin vom Theme überschrieben wird? Komme nicht ganz dahinter wie du das genau meinst. Mit eigenem Template Ordner meinst du dein eigenes abgeleitetes Theme?

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [29. Februar 2016 um 12:11 UTC](https://forum.shopware.com/t/template-erweitern/34872/9 "2016-02-29T12:11:34Z")

</div>

Genau, ich meine mein eigenes abgeleitetes Theme.  
Es sieht so aus, als würde das eigene abgeleitete Theme das Plugin überschreiben.

---

<div class="post-metadata">

**Author:** ![Shopwareianer](https://avatars.discourse-cdn.com/v4/letter/s/b4bc9f/32.png) [@Shopwareianer](https://forum.shopware.com/u/Shopwareianer)\
**Post date:** [29. Februar 2016 um 12:12 UTC](https://forum.shopware.com/t/template-erweitern/34872/10 "2016-02-29T12:12:43Z")

</div>

@Mogly Schau mal hier:&nbsp;

> <https://github.com/shopware/shopware/blob/5.1/engine/Shopware/Components/Theme.php#L111-L118>

[https://developers.shopware.com/designers-guide/smarty/#inheritance-and-plugin-templates](https://developers.shopware.com/designers-guide/smarty/#inheritance-and-plugin-templates)

Das sollte dir weiter helfen&nbsp; ![Wink](http://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/wink.png "Wink")

```
protected $injectBeforePlugins = true;

```

In deiner Theme.php sollte das Problem beheben. So werden die Plugins **nach** deinem Theme geladen und es sollte funktionieren.

Diese Änderung kam mit der Version 5.1.2, diese muss also installiert sein:&nbsp;[SW-12782 - Add theme config property to configure inheritance position · shopware/shopware@163860e · GitHub](https://github.com/shopware/shopware/commit/163860e8b789f8c0f0aa40ddc1661c0abcd7cada)

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [29. Februar 2016 um 13:01 UTC](https://forum.shopware.com/t/template-erweitern/34872/11 "2016-02-29T13:01:50Z")

</div>

@kayy

super danke dir 🙂

es lag an der 5.1.1 dass er die

$injectBeforePlugin

nicht schlucken wollte… jetzt läuft alles schick 🙂 … vielen dank! 😉
