# Controller Template laden - Wie richtig ?

**URL:** https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943
**Category:** Programmierung
**Created:** [10. Juni 2019 um 16:36 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943 "2019-06-10T16:36:00Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![kanuma](https://avatars.discourse-cdn.com/v4/letter/k/ce7236/32.png) [@kanuma](https://forum.shopware.com/u/kanuma)
#### Post date: [10. Juni 2019 um 16:36 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/1 "2019-06-10T16:36:00Z")

</div>

Moin,

wenn man einen Controller erstellt wie hier:

[https://docs.shopware.com/en/shopware-platform-dev-en/internals/plugins/plugin-quick-start?category=shopware-platform-dev-en/internals/plugins#creating-a-controller](https://docs.shopware.com/en/shopware-platform-dev-en/internals/plugins/plugin-quick-start?category=shopware-platform-dev-en/internals/plugins#creating-a-controller)

wie lade ich am besten das zugehörige Template, welches vom Shop Template erbt? Also z.b die content Seite um etwas darzustellen …

Mit freundlichen Grüßen&nbsp;

marc

---

<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: [10. Juni 2019 um 17:50 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/2 "2019-06-10T17:50:20Z")

</div>

Hi Marc, schau mal hier:&nbsp;[https://docs.shopware.com/en/shopware-platform-dev-en/how-to/extending-storefront-block?category=shopware-platform-dev-en/how-to](https://docs.shopware.com/en/shopware-platform-dev-en/how-to/extending-storefront-block?category=shopware-platform-dev-en/how-to)

---

<div class="post-metadata">

### Author: ![kanuma](https://avatars.discourse-cdn.com/v4/letter/k/ce7236/32.png) [@kanuma](https://forum.shopware.com/u/kanuma)
#### Post date: [10. Juni 2019 um 17:57 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/3 "2019-06-10T17:57:13Z")

</div>

Danke, aber das meinte ich nicht …

mehr oder weniger welchen Return muss man angeben, bzw. Wie rendert man das Template…

---

<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: [11. Juni 2019 um 11:30 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/4 "2019-06-11T11:30:51Z")

</div>

Okay, verstehe. Du meinst also wie du einen kompletten custom view für das Frontend rendert? Das ist eine gute Frage.

In Symfony geht es ja generell mit:

```
/**
 * @Route("/default/hello", name="default_hello")
 */
....
return $this->render('default/hello.html.twig', [
    'who' => 'World',
]);

```

Gibt es dazu schon Infos [@Patrick Stahl]([http://forum.shopware.com/profile/1869/Patrick](http://forum.shopware.com/profile/1869/Patrick) Stahl „Patrick Stahl“)‍ [@Moritz Naczenski]([http://forum.shopware.com/profile/14574/Moritz](http://forum.shopware.com/profile/14574/Moritz) Naczenski „Moritz Naczenski“)‍ wie man ein custom twig Template aus einem Plugin heraus an die Storefront übergibt? Das würde mich auch interessieren, oder geht das aktuell noch nicht?

---

<div class="post-metadata">

### Author: ![kanuma](https://avatars.discourse-cdn.com/v4/letter/k/ce7236/32.png) [@kanuma](https://forum.shopware.com/u/kanuma)
#### Post date: [11. Juni 2019 um 11:37 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/5 "2019-06-11T11:37:23Z")

</div>

genau… das habe ich auch schon herrausgerunfen… in der keynote in einer Präsentation gibt es ein Code-snippet, aber das hilft nicht wiklich. Leider konnte ich bislang das template nur bedingt laden… leider wird die NAVIGATIOn etc nicht mitgelden. Hier meine route:&nbsp;[http://shopware:8000/paulfirstplugin/show/raitings](http://shopware:8000/paulfirstplugin/show/raitings)

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/d/d92d891c41b4a347fb499373b7541eed0b27915f.png)

&nbsp;

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/5/596a002cc466bd96c243ba215c4fa877662bfd69.png)

&nbsp;

&nbsp;

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/4/44137c04c2ee67047ad52982e5271aa7d1285758.png)

---

<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: [12. Juni 2019 um 06:10 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/6 "2019-06-12T06:10:43Z")

</div>

Guten Morgen @kanuma‍!

_$this-\>render_&nbsp;zu nutzen ist garnicht so verkehrt. Dann aber bitte lieber _$this-\>renderStorefront_, macht im Prinzip das Gleiche, wirft aber noch ein Event dazu.&nbsp; 🙂

Bezüglich der Navigation:  
Extende bitte einmal von der Datei&nbsp;_@Storefront/base.html.twig_.

Generell gilt es hier aber dazu zu sagen, dass das im Standard häufig noch ein bisschen anders gelöst wird.  
Wenn dein Controller selbst auch in mehrere Bereiche aufgeteilt ist (Eine Übersicht, eine Detailansicht, …), extenden wir meistens nicht direkt von der o.g. Datei, sondern erst von einer Art “Fundament” Datei, die von allen Templates des Controllers genutzt wird.  
Diese “Fundament” Datei stellt quasi die grobe Struktur der Controller Templates dar.  
[Hier](https://github.com/shopware/platform/blob/master/src/Storefront/Resources/views/page/account/index.html.twig#L1) mal am Beispiel des Account Controllers. In der ersten Zeile wird von einer _\_page.html.twig_&nbsp;extended. Und das passiert bei allen Account Templates.  
Und eben jenes&nbsp;_\_page_&nbsp;Template extended dann erst von der&nbsp;_base.html.twig_.  
Das Naming zieht sich so konsequent durch. Wenn du nun aber einen Controller hast, der eh nur einen Bereich kennt und rendert (bspw. Detailseite), ist das natürlich überflüssig.

Hilft das irgendwie weiter?&nbsp; ![Foot-in-Mouth](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/bedbc37f276faa6d086ddea9cd70cb0550bbd56e.png "Foot-in-Mouth")

Gruß,  
Patrick&nbsp; ![Shopware](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/86c57fbace799dd4eb1f1b8a2d3bdc1733f0aea1.png "Shopware")

---

<div class="post-metadata">

### Author: ![kanuma](https://avatars.discourse-cdn.com/v4/letter/k/ce7236/32.png) [@kanuma](https://forum.shopware.com/u/kanuma)
#### Post date: [12. Juni 2019 um 07:01 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/7 "2019-06-12T07:01:05Z")

</div>

Moin Paktrik!

Danke für deine ausführliche Antwort. Leider erschließt sich mir nicht, weshalb ich von&nbsp;@Storefront/base.html.twig extenden soll, denn das Template kennt doch gar nicht das “Gerüst” für eine Content/CMS Seite oder ? Also ich hab das mal eingefügt, dann bleibt aber die Seite leer. Die Navigation etc wird auch nicht geladen.

Evtl. kannst du das nochmal prüfen 🙂

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/d/dcdaa765675a4c07951163e7dfc342be301b326d.png)

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/1/141480c863d24d8bb1a7c610c47d91b6331cf0e2.png)

---

<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: [12. Juni 2019 um 07:32 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/8 "2019-06-12T07:32:24Z")

</div>

Moin @kanuma‍,

entschuldige, ich hatte übersehen, dass du bereits von&nbsp;_page/content/index.html.twig_&nbsp;extendest, und die Information, dass du eine CMS Seite bauen möchtest. Hatte irgendwie im Kopf, dass da dein eigenes Template steht.

Einfach mal die Dau-Frage: Die Navigation ist sonst überall da und du hast auch durchaus ein paar Kategorien?  
Wenn Ja, wüsste ich gerade spontan auch nicht, warum die Navigation bei dir nicht angezeigt wird, da müsste ich auch erstmal schauen und das Szenario nachbauen, sorry!&nbsp; ![Foot-in-Mouth](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/bedbc37f276faa6d086ddea9cd70cb0550bbd56e.png "Foot-in-Mouth")  
Ggf. hat der [@Stephan Pohl]([http://forum.shopware.com/profile/2/Stephan](http://forum.shopware.com/profile/2/Stephan) Pohl “Stephan Pohl”)‍ da aber einen Rat. 🙂

Gruß,  
Patrick&nbsp; ![Shopware](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/86c57fbace799dd4eb1f1b8a2d3bdc1733f0aea1.png "Shopware")  
&nbsp;

---

<div class="post-metadata">

### Author: ![kanuma](https://avatars.discourse-cdn.com/v4/letter/k/ce7236/32.png) [@kanuma](https://forum.shopware.com/u/kanuma)
#### Post date: [12. Juni 2019 um 07:43 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/9 "2019-06-12T07:43:06Z")

</div>

Moin Patrik,

genau ich möchte eine Content-Seite bauen, also ausprobieren… Der Inhalt ist ja erstmal egal. Die Seite soll unter einer beliebigen Route erreichbar sein z.B. /Kundenbewertungen.

Ja: Die Navigation ist sonst überall da 🙂

---

<div class="post-metadata">

### Author: ![kanuma](https://avatars.discourse-cdn.com/v4/letter/k/ce7236/32.png) [@kanuma](https://forum.shopware.com/u/kanuma)
#### Post date: [14. Juni 2019 um 06:12 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/10 "2019-06-14T06:12:34Z")

</div>

[@Patrick Stahl]([http://forum.shopware.com/profile/1869/Patrick](http://forum.shopware.com/profile/1869/Patrick) Stahl „Patrick Stahl“)‍

---

<div class="post-metadata">

### Author: ![mkhsky](https://avatars.discourse-cdn.com/v4/letter/m/ecae2f/32.png) [@mkhsky](https://forum.shopware.com/u/mkhsky)
#### Post date: [22. Januar 2020 um 11:14 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/11 "2020-01-22T11:14:25Z")

</div>

Moin,

ich hoffe du hast das Problem mittlerweile selbst hinbekommen. Da ich aber auch gerade starte und das selbe Problem habe, poste ich hier einmal den Grund.

&nbsp;

Die Navigation wird nicht angezeigt, weil diese über die “page” variable gesetzt wird.

Also muss man den GenericPageLoader injecten und den Controller als Service regstrieren.

&nbsp;

Controller:

```
genericPageLoader = $genericPageLoader;
    }

    /** @Route("/plugin", name="frontend.plugin.index", options={"seo"="false"}, methods={"GET"}) */
    public function index(Request $request, SalesChannelContext $context) {
        $page = $this->genericPageLoader->load($request, $context);
        return $this->renderStorefront("components/plugin/index.html.twig", [
            'page' => $page
        ]);
    }
}

```

Plugin

```
load('controller.xml');
    }
}

```

DependencyInjection/controller.xml

views/components/plugin/index.html.twig

```
{% sw_extends '@Storefront/storefront/base.html.twig' %}

{% block base_content %}
	{{ parent() }}
	hello world
{% endblock %}

```

&nbsp;

---

<div class="post-metadata">

### Author: ![michal\_bnet](https://avatars.discourse-cdn.com/v4/letter/m/f08c70/32.png) [@michal\_bnet](https://forum.shopware.com/u/michal_bnet)
#### Post date: [23. Januar 2020 um 13:36 UTC](https://forum.shopware.com/t/controller-template-laden-wie-richtig/59943/12 "2020-01-23T13:36:04Z")

</div>

hi&nbsp;[mkhsky](https://forum.shopware.com/profile/33911/mkhsky)&nbsp;

can you please post here complete plugin ?

trying to do something similar but not sure where i have error.

thanks
