# Inhaltsypen: Wie bekomme ich die Werte der Felder im Theme?

**URL:** <https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368>\
**Category:** Themes & Design\
**Created:** [15. Oktober 2019 um 07:42 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368 "2019-10-15T07:42:08Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![daveYuberlin](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@daveYuberlin](https://forum.shopware.com/u/daveYuberlin)\
**Post date:** [15. Oktober 2019 um 07:42 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/1 "2019-10-15T07:42:08Z")

</div>

Gibt es irgendwo eine Anleitung oder Beispiel Scripte, wo man sehen kann wie im Frontend mit Inhaltstypen/Content-Types gearbeitet wird?

Ich habe gesehen, dass im Theme Ordner ein neuer Ordner “content\_type” angelegt wird, wenn man Inhaltstypen im Backend anlegt.

Aber diese Darstellung der Felder alles hintereinander sogar ohne die Möglichkeit die Reihenfolge einzustellen oder Felder auszublenden in der Detailansicht kann es ja nicht gewesen sein.

Kann mir vielleicht jemand sagen, wie ich die Felder der Inhaltstypen einzeln ausgeben kann (content-type/detail.tpl)?

Ein var\_dump der Variablen bringt mir nur die Struktur, nicht die Inhalte der Felder?

---

<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:** [15. Oktober 2019 um 08:21 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/2 "2019-10-15T08:21:07Z")

</div>

Die Werte findest du in der Variable $sItem.

&nbsp;

---

<div class="post-metadata">

**Author:** ![daveYuberlin](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@daveYuberlin](https://forum.shopware.com/u/daveYuberlin)\
**Post date:** [15. Oktober 2019 um 09:10 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/3 "2019-10-15T09:10:34Z")

</div>

Super danke. Wie kann ich denn die field templates laden für ein einzelnes Feld?

Im Template detail.tpl passiert das über

```
{include file=$field.template content=$sItem[$field.name] detail=$field}

```

in einer foreach Schleife. Klar kann ich das mit {if} eingrenzen auf das Feld, aber ich würde diese includes gerne einzeln pro Feld ausgeben.  
$sItem[‚meinFeld‘] funktioniert nur bei content.

Eine weitere Frage:  
Wie könnte man für verschiedene Inhaltstypen unterschiedliche Templates realisieren?

---

<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:** [15. Oktober 2019 um 09:54 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/4 "2019-10-15T09:54:00Z")

</div>

Erstmal solltest du nichts unter frontend/content\_type/\* ändern

Es wird erst versucht ein eigenes Template zu laden. Wenn dein Content Type z.B SwagFoo heißt, versucht er frontend/swag\_foo/index.tpl oder&nbsp;frontend/swag\_foo/detail.tpl zu laden.

Jedes&nbsp;Feld&nbsp;bringt sein eigenes Template mit. Ich würde dir jedoch empfehlen einfach ein detail.tpl für dein Inhalttyp anzulegen und es wie gewollt ausgeben 🙂

---

<div class="post-metadata">

**Author:** ![daveYuberlin](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@daveYuberlin](https://forum.shopware.com/u/daveYuberlin)\
**Post date:** [15. Oktober 2019 um 11:16 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/5 "2019-10-15T11:16:57Z")

</div>

Ok das dachte ich mir schon mit den Theme Overrides. Vielen Dank für deine Hilfe.

---

<div class="post-metadata">

**Author:** ![Arya\_Svitkona](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/arya_svitkona/32/15319_2.png) [@Arya\_Svitkona](https://forum.shopware.com/u/Arya_Svitkona)\
**Post date:** [29. November 2019 um 13:07 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/6 "2019-11-29T13:07:40Z")

</div>

Hey ho,  
Anhand der Doku und diesem Forumbeitrag gehe ich davon aus, dass ich keinen „Controller“ anlegen muss um eigene Inhaltstypen mit der Übersicht / Detailansicht ausgeben zu können korrekt?&nbsp;

Es scheint auszureichen, dass ich ein Inhaltstyp erstelle, davon ein neues Element erstelle und im Theme Folder die Datei&nbsp;„frontend/anwendung/index.tpl“ etc. anlegen welche ich aus dem „content\_type“ holen kann. Korrekt?

Ich erhalte nämlich den folgenden Fehler beim aufruf der Übersichtsseite:  
&nbsp;

```
: Uncaught Enlight_Controller_Exception: Controller "anwendung" not found for request url http://foobar.memo/anwendung in /Users/srutishauser/Sites/foobar/engine/Library/Enlight/Controller/Dispatcher/Default.php:428
Stack trace:
#0 /Users/srutishauser/Sites/foobar/engine/Library/Enlight/Controller/Front.php(228): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#1 /Users/srutishauser/Sites/foobar/engine/Shopware/Kernel.php(185): Enlight_Controller_Front->dispatch()
#2 /Users/srutishauser/Sites/foobar/vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php(102): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#3 /Users/srutishauser/Sites/foobar/vendor/symfony/http-kernel/HttpCache/HttpCache.php(448): Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle(Object(Shopware\Kernel), Object(Symfony\Component\HttpFoundation\Request), 1, true)
#4 /Users/srutishause in 

```

**UPDATE:**

Scheint damit zu tun haben, dass die SEO Url noch nicht generiert ist. Über den Pfad „[http://foobar.memo/shopware.php?sViewport=CustomAnwendung](http://foobar.memo/shopware.php?sViewport=CustomAnwendung)“ kann ich auf die Übersicht zugreifen.

---

<div class="post-metadata">

**Author:** ![Arya\_Svitkona](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/arya_svitkona/32/15319_2.png) [@Arya\_Svitkona](https://forum.shopware.com/u/Arya_Svitkona)\
**Post date:** [10. Februar 2020 um 15:10 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/7 "2020-02-10T15:10:57Z")

</div>

Für alle die es noch hinbekommen haben, pro Inhalttyp einen eigenen Template Ordner anzulegen.  
[https://developers.shopware.com/developers-guide/content-types/#displaying-in-frontend](https://developers.shopware.com/developers-guide/content-types/#displaying-in-frontend)

**Beispiel:** &nbsp;

Wenn ich ein Inhaltelement “Anwendung” mache mit einer Übersicht aller Teammitglieder und einer jeweiligen Detailansicht, wird der technische Name “CustomAnwendung” heissen. Somit heisst der Controller ebenfalls “CustomAnwendung”. Im Frontend wird als Fallback (wenn nichts anderes definiert) das Template Verzeichniss “…Bare/frontend/content\_type” genutzt, welches man auf keinen Fall überschreiben soll.

Erstellt man nun ein eigenes Theme, kann man zwar das Template Verzeichniss “…MyTheme/frontend/content\_type” updatesicher überschreiben, davon wird jedoch ebenfalls abgeraten. Wenn nun mehrere Inhaltstypen erstellt werden, teilen sich diese den gleichen Fallback, welcher dann ja umgeschrieben wurde.

**Lösung:**

Neuer Ordner im eigenen Theme mit dem Namen “…MyTheme/frontend/ **custom\_anwendung** ” anlegen und darin alle Templates editieren, welche für den spezifischen Inhaltstyp “Anwendung” wichtig sind.

Der Hacken bei mir war, dass das Template aufgrund falscher Benennung nie funktioniert hat. -\> Controller heisst zwar “CustomAnwendung” doch der Ordner muss “custom\_anwendung” heissen. Selbstverständlich kann “Anwendung” durch den eigenen jeweiligen Inhaltstyp ersetzt werden.

Der technische Name wird einem beim erstellen des Inhalttyps angezeigt.

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

---

<div class="post-metadata">

**Author:** ![daveYuberlin](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@daveYuberlin](https://forum.shopware.com/u/daveYuberlin)\
**Post date:** [17. August 2020 um 14:10 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/8 "2020-08-17T14:10:42Z")

</div>

Die Templates anzupassen für verschiedene Inhaltstypen funktioniert nun super bei mir.

Jetzt würde mich noch Interessieren, wie man am besten Listenansichten der Inhaltstypen auf anderen Seiten (z.B. Homepage) inkludieren kann?  
Welche Möglichkeiten gibt es da und welche ist am einfachsten?

- Inkludieren mit Parameter über Smarty (gibt es so eine Funktion schon für Inhaltstypen?)
- API Abfrage mit PHP (Plugin nötig) oder Javascript?

Generell habe ich gerade das Problem, das ich nicht weiß, wo ich loslegen soll ;(

---

<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. August 2020 um 14:23 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/9 "2020-08-17T14:23:31Z")

</div>

Es gibt eine fetchContent methode in smarty

[https://github.com/shopware/shopware/blob/5.6/UPGRADE-5.6.md#content-types](https://github.com/shopware/shopware/blob/5.6/UPGRADE-5.6.md#content-types)

---

<div class="post-metadata">

**Author:** ![daveYuberlin](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@daveYuberlin](https://forum.shopware.com/u/daveYuberlin)\
**Post date:** [17. August 2020 um 15:55 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/10 "2020-08-17T15:55:45Z")

</div>

Perfekt! Das sollte unbedingt in die Doku aufgenommen werden. Danke!

---

<div class="post-metadata">

**Author:** ![daveYuberlin](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@daveYuberlin](https://forum.shopware.com/u/daveYuberlin)\
**Post date:** [2. November 2020 um 15:37 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/11 "2020-11-02T15:37:54Z")

</div>

Also das mit den Templates klappt mit den Listings schon sehr gut, nur habe ich Probleme auf die Detailseite zu linken.

Wenn ich den Link im Listing wie folgt erstelle…

```
         {s name="frontend/custom/readmore"}weiterlesen{/s}

```

…erhalte ich die Fehlermeldung:

```
Fatal error: Uncaught Enlight_Controller_Exception: Action "Frontend_Index_detailAction" not found failure for request url http://meineurl.de/index/detail/id/2 ...

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![daveYuberlin](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@daveYuberlin](https://forum.shopware.com/u/daveYuberlin)\
**Post date:** [2. November 2020 um 15:54 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/12 "2020-11-02T15:54:38Z")

</div>

Ok hier die Lösung…

Inhaltstyp: Veranstaltungen  
Ordner: meinTheme/frontend/custom\_veranstaltungen  
Datei: meinTheme/frontend/custom\_veranstaltungen/module.tpl

die module.tpl inkludiere ich dann über

{ **include** file=‘frontend/custom\_veranstaltungen/module.tpl’}

In der module.tpl dann:

```
{fetchContent type=veranstaltungen assign=veranstaltungen}

{foreach $veranstaltungen as $event}
{$event.titel}
{$event.beginn}
{$event.ende}

...

       {s name="frontend/custom/readmore"}weiterlesen{/s}

{/foreach}

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![daveYuberlin](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@daveYuberlin](https://forum.shopware.com/u/daveYuberlin)\
**Post date:** [1. Februar 2021 um 14:08 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/13 "2021-02-01T14:08:28Z")

</div>

Ich habe noch mal eine Frage zu fetchContent:

Wie kann ich in der Filterfunktion eine Ebene weiter runter?

```
{fetchContent type=myContentType assign=myContentType limit=4 filter=[['property' => 'ebene2.articleName', 'value' => 'gesuchterName']]}

```

Also in Smarty kann ich {myContentType.ebene2.articleName} ausgeben, in der fetchContent Funktion kann ich diese aber nicht zum filtern nutzen. Attribute in der ersten Ebene funktionieren problemlos.

Hintergrund: Mein Inhaltstyp hat ein Produktauswahl Feld, über das ich die Einträge gerne auf der Produkt-Detailseite filtern würde.

---

<div class="post-metadata">

**Author:** ![alinestuecher](https://avatars.discourse-cdn.com/v4/letter/a/ecb155/32.png) [@alinestuecher](https://forum.shopware.com/u/alinestuecher)\
**Post date:** [14. November 2022 um 13:27 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/14 "2022-11-14T13:27:08Z")

</div>

Ich bekomme es leider nicht hin, das Theme content\_type aus dem Bare Theme zu überschreiben.

Habe ein Template erstellt unter meintheme/frontend/custom\_team/listing/item.tpl  
In diesem verwende ich  
`{extends file='parent:frontend/content_type/listing/item.tpl'}`

Link zum Frontend: shopware.php?sViewport=CustomTeam

Dort erweitere ich das Template. Die Änderungen dort greifen allerdings nicht. Cache wurde natürlich geleert. Habe die Änderungen einmal im Bare Theme vorgenommen um sicher zu gehen. Dort greifen die Änderungen.

Danke

---

<div class="post-metadata">

**Author:** ![daveYuberlin](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@daveYuberlin](https://forum.shopware.com/u/daveYuberlin)\
**Post date:** [14. November 2022 um 14:37 UTC](https://forum.shopware.com/t/inhaltsypen-wie-bekomme-ich-die-werte-der-felder-im-theme/62368/15 "2022-11-14T14:37:37Z")

</div>

Versuche mal das {extends…} wegzulassen. Ich habe die index.tpl im Ordner darüber auch überschrieben, und die foreach Schleife geändert.

Das würde dann bei dir etwa so ausehen im {block name=‚frontend\_index\_content‘}:

```auto
 {foreach from=$sItems|sortby:"-updated_at" item=team}
                {include file="frontend/custom_team/listing/item.tpl"}
            {/foreach}

```
