# Plugin Templates mit Plugin erweitern

**URL:** https://forum.shopware.com/t/plugin-templates-mit-plugin-erweitern/58116
**Category:** Themes & Design
**Created:** [19. Februar 2019 um 08:06 UTC](https://forum.shopware.com/t/plugin-templates-mit-plugin-erweitern/58116 "2019-02-19T08:06:30Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![mdsw](https://avatars.discourse-cdn.com/v4/letter/m/94ad74/32.png) [@mdsw](https://forum.shopware.com/u/mdsw)
#### Post date: [19. Februar 2019 um 08:06 UTC](https://forum.shopware.com/t/plugin-templates-mit-plugin-erweitern/58116/1 "2019-02-19T08:06:30Z")

</div>

Hallo

ich würde gerne die Template Dateien eines Plugins (A) mit den Template Dateien eines Plugins (B) erweitern. Dazu habe ich zunächst folgende beiden Plugins A und B und ihre Template Datei-Struktur wie folgt:

**prefixPluginA**  
|\_\_Resources \> views \> frontend \> index \> index.tpl  
|\_\_Resources \> views \> frontend \> prefix\_plugin\_a\_ordner \> plugin\_a\_template.tpl

&nbsp;

**prefixPluginB**  
|\_\_Resources \> views \> frontend \> index \> index.tpl  
|\_\_Resources \> views \> frontend \> prefix\_plugin\_b\_ordner \> plugin\_b\_template.tpl

&nbsp;

Plugin A und Plugin B erweitern beide das Frontend. Dabei werden Inhalte in einen Block der index.tpl aus den zusätzlichen Ordnern inkludiert:

&nbsp;

**PluginA:** frontend \> index \> index.tpl

```
{extends file="parent:frontend/index/index.tpl"}
{block name='frontend_index_before_page'}
    {$smarty.block.parent}
    {include file="frontend/prefix_plugin_a_ordner/plugin_a_template.tpl"}
{/block}

```

**PluginA:** &nbsp;frontend \> prefix\_plugin\_a\_ordner \> plugin\_a\_template.tpl

```
{block name='pluginABlock'}
    INHALT INHALT INHALT
{/block}

```

&nbsp;

**PluginB:** frontend \> index \> index.tpl

```
{extends file="parent:frontend/index/index.tpl"}
{block name='frontend_index_before_page'}
    {$smarty.block.parent}
    {include file="frontend/prefix_plugin_b_ordner/plugin_b_template.tpl"}
{/block}

```

**PluginB:** &nbsp;frontend \> prefix\_plugin\_b\_ordner \> plugin\_b\_template.tpl

```
{block name='pluginBBlock'}
    INHALT INHALT INHALT
{/block}

```

&nbsp;

Nun soll Plugin A durch Plugin B aber noch erweitert werden, dazu möchte ich die Ordnerstruktur aus dem Plugin A übernehmen und habe mir diese Ordner ebenfalls in Plugin B angelegt:

&nbsp;

**prefixPluginB**  
|\_\_Resources \> views \> frontend \> index \> index.tpl  
|\_\_Resources \> views \> frontend \> prefix\_plugin\_b\_ordner \> plugin\_b\_template.tpl  
**|\_\_Resources \> views \> frontend \> prefix\_plugin\_a\_ordner \> plugin\_a\_template.tpl**

&nbsp;

&nbsp;

Möglichkeit 1 funktioniert leider nicht:

**PluginB: frontend \> prefix\_plugin\_a\_ordner \> plugin\_a\_template.tpl**

```
{extends file="parent:frontend/prefix_plugin_a_ordner/plugin_a_template.tpl"}
{block name='pluginABlock'}
    {$smarty.block.parent}
    ERWEITERTER INHALT
{/block}

```

&nbsp;

Notlösung ist hier, dass ich die Blöcke in der index.tpl des PluginB erweitere.

**PluginB:** frontend \> index \> index.tpl

```
{extends file="parent:frontend/index/index.tpl"}
{block name='frontend_index_before_page'}
    {$smarty.block.parent}
    {include file="frontend/prefix_plugin_b_ordner/plugin_b_template.tpl"}
{/block}

{block name='pluginABlock'}
    {$smarty.block.parent}
    ERWEITERTER INHALT
{/block}

```

&nbsp;

Wie geht man sowas an?

&nbsp;

&nbsp;

&nbsp;

---

<div class="post-metadata">

### Author: ![mdsw](https://avatars.discourse-cdn.com/v4/letter/m/94ad74/32.png) [@mdsw](https://forum.shopware.com/u/mdsw)
#### Post date: [19. Februar 2019 um 10:40 UTC](https://forum.shopware.com/t/plugin-templates-mit-plugin-erweitern/58116/2 "2019-02-19T10:40:53Z")

</div>

Ich habe die Lösung gefunden: Man muss dabei darauf achten, dass bei der Template Registrierung in einem Subscriber die Templates von PluginB nach den Templates des PluginA registriert werden - ist ja auch logisch.&nbsp;

&nbsp;

Zusatzfrage: Kann es hierbei in irgendeiner Konstellation zu einer Smarty-Exeption kommen?&nbsp;

Beispiel:

1. PluginA ist nicht installiert - extends-Befehl versucht etwas zu erweitern, was es nicht gibt - keinen Fehler bemerkt - es dürften ja dann die Dateien im PluginB gar nicht aufgerufen werden, da sie ja niemals inkludiert wurden. korrekt?
2. illegal recursive call - würde erscheinen, wenn die die&nbsp;PluginB: frontend \> prefix\_plugin\_a\_ordner \> plugin\_a\_template.tpl in der index.tpl includen würde - das habe ich ja aber nicht vor. Die Dateien werden ja erst geladen, wenn PluginA installiert ist und darin die Eltern-Dateien inlkudiert wurden.&nbsp;Aber so ein Fehler dürfte ja auch nicht auftreten in irgendeiner Konstellation?
