# Eigenes Plugin schreiben um .tpl Datei zu überschreiben

**URL:** <https://forum.shopware.com/t/eigenes-plugin-schreiben-um-tpl-datei-zu-uberschreiben/63603>\
**Category:** Plugins\
**Created:** [18. Dezember 2019 um 07:44 UTC](https://forum.shopware.com/t/eigenes-plugin-schreiben-um-tpl-datei-zu-uberschreiben/63603 "2019-12-18T07:44:58Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![QuasiPasi](https://avatars.discourse-cdn.com/v4/letter/q/35a633/32.png) [@QuasiPasi](https://forum.shopware.com/u/QuasiPasi)\
**Post date:** [18. Dezember 2019 um 07:44 UTC](https://forum.shopware.com/t/eigenes-plugin-schreiben-um-tpl-datei-zu-uberschreiben/63603/1 "2019-12-18T07:44:58Z")

</div>

Hallo Zusammen,

Ich versuche mich gerade an meinem ersten kleinen Plugin, dazu habe ich eine Menge Tutorials gelesen und geschaut.

Es soll im Prinzip nur eine tpl angesprochen werden, aber irgendwie passiert rein garnichts, ich komme da nun einfach nicht weiter.

Der Code meiner Plugin.php sieht so aus:

```
 'onFrontendPostDispatchBlog'
        ];
    }
    public function onFrontendPostDispatchBlog(\Enlight_Controller_ActionEventArgs $args)
    {
        $this->container->get('template')->addTemplateDir(
        $this->getPath() . '/Resources/views/'
        );
    }
}

```

Die .tpl Datei liegt im Plugin unter: PBConsentbutton\Resources\views\frontend

&nbsp;

Kann mir jemand weiter helfen ?

&nbsp;

Beste Grüße

&nbsp;

&nbsp;

---

<div class="post-metadata">

**Author:** ![Patrick\_Stahl](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/patrick_stahl/32/7679_2.png) [@Patrick\_Stahl](https://forum.shopware.com/u/Patrick_Stahl)\
**Post date:** [18. Dezember 2019 um 09:07 UTC](https://forum.shopware.com/t/eigenes-plugin-schreiben-um-tpl-datei-zu-uberschreiben/63603/2 "2019-12-18T09:07:51Z")

</div>

Moin @QuasiPasi‍,

wie **genau** &nbsp;ist der Pfad zu deiner Template Datei?  
Was ist der Inhalt?

Der Code, den du hier gezeigt hast, sieht erstmal so weit richtig aus.

Besten Gruß  
 ![Shopware](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/shopware.png "Shopware")&nbsp; Patrick Stahl

---

<div class="post-metadata">

**Author:** ![QuasiPasi](https://avatars.discourse-cdn.com/v4/letter/q/35a633/32.png) [@QuasiPasi](https://forum.shopware.com/u/QuasiPasi)\
**Post date:** [18. Dezember 2019 um 09:37 UTC](https://forum.shopware.com/t/eigenes-plugin-schreiben-um-tpl-datei-zu-uberschreiben/63603/3 "2019-12-18T09:37:17Z")

</div>

Hallo Patrick,

dies ist der Pfad:

/custom/plugins/PBConsentbutton/Resources/views/frontend/\_includes

der Inhalt ist diese Datei:

cookie\_permission\_note.tpl

```
{extends file="parent:frontend/_includes/cookie_permission_note.tpl"}

{namespace name="frontend/cookiepermission/index"}

{block name="cookie_permission_accept_button_fixed"}
     {if {config name="cookie_note_mode"} == 1}
          {if {config name="cookie_show_button"}}

               
               {s name="cookiePermission/configure"}{/s}
          
          {/if}

          
                    {s name="cookiePermission/acceptAll"}{/s}
               
     {else}
          
               {s name="cookiePermission/buttonText"}{/s}
          
     {/if}
{/block}

```

&nbsp;

wenn ich die .tpl datei per FTP in das Theme setze, funktioniert Sie.

---

<div class="post-metadata">

**Author:** ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)\
**Post date:** [18. Dezember 2019 um 09:52 UTC](https://forum.shopware.com/t/eigenes-plugin-schreiben-um-tpl-datei-zu-uberschreiben/63603/4 "2019-12-18T09:52:01Z")

</div>

Dürfte das nicht sparsamer gehen?&nbsp;

```
 'onFrontendPostDispatchBlog'
        ];
    }
    public function onFrontendPostDispatchBlog(\Enlight_Controller_ActionEventArgs $args)
    {
        $this->container->get('Template')->addTemplateDir(
        $this->getPath() . '/Resources/views'
        );
    }
}

```

habe es nicht getestet. nur ausm Kopf heraus

---

<div class="post-metadata">

**Author:** ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)\
**Post date:** [18. Dezember 2019 um 09:55 UTC](https://forum.shopware.com/t/eigenes-plugin-schreiben-um-tpl-datei-zu-uberschreiben/63603/5 "2019-12-18T09:55:39Z")

</div>

Ah ich sehe gerade, “dein” Code… hast dir ja sehr viel Mühe gegeben…&nbsp;[https://forum.shopware.com/discussion/46738/plugin-templatedateien-einbinden](https://forum.shopware.com/discussion/46738/plugin-templatedateien-einbinden)

---

<div class="post-metadata">

**Author:** ![sonic](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sonic/32/25728_2.png) [@sonic](https://forum.shopware.com/u/sonic)\
**Post date:** [18. Dezember 2019 um 09:55 UTC](https://forum.shopware.com/t/eigenes-plugin-schreiben-um-tpl-datei-zu-uberschreiben/63603/6 "2019-12-18T09:55:55Z")

</div>

Nur für “.tpl” registriere ich mich eigentlich auf “Theme\_Inheritance\_Template\_Directories\_Collected”

```
public static function getSubscribedEvents()
{
    return [
        'Theme_Inheritance_Template_Directories_Collected' => 'onCollectTemplateDir',
        'Theme_Compiler_Collect_Plugin_Javascript' => 'onCollectJavascript',
        'Theme_Compiler_Collect_Plugin_Less' => 'onCollectLessFiles'
    ];
}

public function onCollectTemplateDir(\Enlight_Event_EventArgs $args) {
    $dirs = $args->getReturn();
    $dirs[] = $this->getPath() . '/Resources/views/';
    $args->setReturn($dirs);
}

```

Problem könnte sein, dass das “include” schon im Template-Cache liegt, ehe es später “nur” für den Blog abgerufen wird?  
Also ist für eine Datei aus “include” ggf. das&nbsp;“spezielle Event” für Blog schon zu spät ?!?

---

<div class="post-metadata">

**Author:** ![QuasiPasi](https://avatars.discourse-cdn.com/v4/letter/q/35a633/32.png) [@QuasiPasi](https://forum.shopware.com/u/QuasiPasi)\
**Post date:** [18. Dezember 2019 um 10:16 UTC](https://forum.shopware.com/t/eigenes-plugin-schreiben-um-tpl-datei-zu-uberschreiben/63603/7 "2019-12-18T10:16:48Z")

</div>

> [@sonic schrieb:](https://forum.shopware.com/profile/16285/sonic "sonic")
> 
> Nur für „.tpl“ registriere ich mich eigentlich auf „Theme\_Inheritance\_Template\_Directories\_Collected“
> 
> public static function getSubscribedEvents()  
> {  
> return [  
> ‚Theme\_Inheritance\_Template\_Directories\_Collected‘ =\> ‚onCollectTemplateDir‘,  
> ‚Theme\_Compiler\_Collect\_Plugin\_Javascript‘ =\> ‚onCollectJavascript‘,  
> ‚Theme\_Compiler\_Collect\_Plugin\_Less‘ =\> ‚onCollectLessFiles‘  
> ];  
> }
> 
> public function onCollectTemplateDir(\Enlight\_Event\_EventArgs $args) {  
> $dirs = $args-\>getReturn();  
> $dirs = $this-\>getPath() . ‚/Resources/views/‘;  
> $args-\>setReturn($dirs);  
> }
> 
> Problem könnte sein, dass das „include“ schon im Template-Cache liegt, ehe es später „nur“ für den Blog abgerufen wird?  
> Also ist für eine Datei aus „include“ ggf. das&nbsp;„spezielle Event“ für Blog schon zu spät ?!?

&nbsp;

vielen Dank, so geht es.

&nbsp;

---

<div class="post-metadata">

**Author:** ![QuasiPasi](https://avatars.discourse-cdn.com/v4/letter/q/35a633/32.png) [@QuasiPasi](https://forum.shopware.com/u/QuasiPasi)\
**Post date:** [18. Dezember 2019 um 10:20 UTC](https://forum.shopware.com/t/eigenes-plugin-schreiben-um-tpl-datei-zu-uberschreiben/63603/8 "2019-12-18T10:20:55Z")

</div>

> [@brettvormkopp schrieb:](https://forum.shopware.com/profile/6611/brettvormkopp "brettvormkopp")
> 
> Ah ich sehe gerade, „dein“ Code… hast dir ja sehr viel Mühe gegeben…&nbsp;[https://forum.shopware.com/discussion/46738/plugin-templatedateien-einbinden](https://forum.shopware.com/discussion/46738/plugin-templatedateien-einbinden)

Der Code könnte wirklich da her kommen.

Ich lese hier schon ein paar Jahre quer durchs Forum und kopiere mir alle möglichen Codes, diese speichere Ich dann in OneNote und versuch nach und nach dann alles mögliche über css, less und html verstehen und zu nutzen.
