# Template Anpassungen durch eigenes Plugin

**URL:** <https://forum.shopware.com/t/template-anpassungen-durch-eigenes-plugin/41454>\
**Category:** Programmierung\
**Created:** [17. November 2016 um 17:28 UTC](https://forum.shopware.com/t/template-anpassungen-durch-eigenes-plugin/41454 "2016-11-17T17:28:19Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [17. November 2016 um 17:28 UTC](https://forum.shopware.com/t/template-anpassungen-durch-eigenes-plugin/41454/1 "2016-11-17T17:28:19Z")

</div>

Trotz eingehaltener Strukturen im Plugin werden im Views Ordner abgelegte template Anpassungen nicht im Shop übernommen.

Ich habe das Standard Design von Shopware.

Im Plugin liegen die Templateänderungen unter

Views/frontend/account/  
Wenn zusätzliche Variablen übergeben werden , wende ich  
$view-\>addTemplateDir(_\_\_DIR\_\__. **“/Views/”** );

an. Aber was ist mit den Templates, die ich auf Grund des Plugins nur vom Design anpasse ?  
Diese werden nicht aus dem Views Ordner übernommen sondern müssen im eigenen themes Ordner liegen.

&nbsp;

Einfaches Beispiel:

/frontend/account/orders.tpl

```
{extends file='parent:frontend/account/orders.tpl'}

{block name="frontend_account_orders_table_head_dispatch"}
    {s name="OrderColumnPrintStatus"}Druckdatei{/s}
{/block}

```

Dieser geht nicht im Pluginordner unter /Pluginname/frontend/account/orders.tpl

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [17. November 2016 um 18:03 UTC](https://forum.shopware.com/t/template-anpassungen-durch-eigenes-plugin/41454/2 "2016-11-17T18:03:34Z")

</div>

Wenn du den Template Ordner so einfügst:&nbsp;$view-\>addTemplateDir(_\_\_DIR\_\_&nbsp;_.&nbsp; **“/Views/”** );

Müsste dein Template orders.tpl in /Pluginname/Views/frontend/account liegen

---

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [17. November 2016 um 18:33 UTC](https://forum.shopware.com/t/template-anpassungen-durch-eigenes-plugin/41454/3 "2016-11-17T18:33:12Z")

</div>

Wenn ich aber im Bootstrap Daten in einem Event ändere, für das Template, z.b

```
  $this->subscribeEvent(
            'Shopware_Modules_Admin_GetOpenOrderData_FilterResult',
            'getOpenOrderAttributes'
        );

```

und ich dann in orders.tpl die Spalte umbenennen will, habe ich kein $view-\>addTemplateDir(_\_\_DIR\_\_&nbsp;_.&nbsp; **“/Views/”** );&nbsp; ausgeführt.

Somit findet er dort das Template nicht, richtig ?

&nbsp;

Das bedeutet, er schaut nicht automatisch im Pluginordner nach Templates ?

---

<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:** [17. November 2016 um 19:25 UTC](https://forum.shopware.com/t/template-anpassungen-durch-eigenes-plugin/41454/4 "2016-11-17T19:25:39Z")

</div>

> [@megadruck schrieb:](https://forum.shopware.com/profile/23722/megadruck "megadruck")
> 
> Das bedeutet, er schaut nicht automatisch im Pluginordner nach Templates ?

Hallo,

ja das bedeutet es. Man muss natürlich auch ein Event in der Bootstrap - Datei übergeben, wo die Template-Dateien „ausgespielt“ werden sollen.

Beste Grüße

Sebastian

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [17. November 2016 um 19:27 UTC](https://forum.shopware.com/t/template-anpassungen-durch-eigenes-plugin/41454/5 "2016-11-17T19:27:31Z")

</div>

Nein, das Event ist dafür nicht geeignet. Zum Hinzufüge des Template Verzeichnisses benutzt du bitte ein Dispatch Event wie z.B.  
Enlight\_Controller\_Action\_Post **Dispatch** Secure

Viele Grüße

---

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [17. November 2016 um 19:57 UTC](https://forum.shopware.com/t/template-anpassungen-durch-eigenes-plugin/41454/6 "2016-11-17T19:57:26Z")

</div>

Danke Euch

---

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [18. November 2016 um 08:16 UTC](https://forum.shopware.com/t/template-anpassungen-durch-eigenes-plugin/41454/7 "2016-11-18T08:16:55Z")

</div>

```
        //define own Template directory
        $this->subscribeEvent(
            'Enlight_Controller_Action_PostDispatchSecure_Frontend_Account',
            'onActionFrontendAccount'
        );

```

hab ich jetzt genutzt, aber das obige orders.tpl wird nicht genutzt.

&nbsp;

```
  public function onActionFrontendAccount(Enlight_Event_EventArgs $args)
    {
        $controller = $args->getSubject();
        $view = $controller->View();
        $view->addTemplateDir( __DIR__. "/Views/");

    }

```

&nbsp;
