Zum Inhalt springen

for-ViewHelper und Typoscript

Erstellt am 6. Februar 2015 · 1 Antwort · letzte Antwort am 9. Februar 2015

Tags: Frage

kl-baerchen ·

Hallo zusammen,

ich folgendes Problem:

  • In Typoscript definiere ich folgendermaßen ein Array:
    lib.Artikel = COA
    lib.Artikel {
    1 = TEXT
    1.value = Artikel 1
    2 = TEXT
    2.value = Artikel 2
    ...
    }

  • Nun möchte ich in einem Fluid Template über alle Einträge des Arrays laufen und diese Ausgeben.
    Dazu habe ich folgendes Template geschrieben:
    Test: {f:cObject(typoscriptObjectPath:'tmp.Artikel.2')}<br/>
    <f:for each="lib.Artikel" as="Artikel">
    Artikelbezeichnung: {Artikel}<br/>
    </f:for>

Leider bekomme ich dazu nur folgende Ausgabe:
Test: Artikel 2
Uncaught TYPO3 Exception
#1237900529: The argument "each" was registered with type "array", but is of type "string" in view helper "TYPO3\CMS\Fluid\ViewHelpers\ForViewHelper"

Deshalb hier die Frage:

  • Geht das Überhaupt?

  • Wenn ja, wie wird es richtig geschrieben?

  • Wenn nein, brauche ich einen Custom View Helper dafür?

toifel ·

Mit each="lib.Artikel" wird es auf keinen Fall funktionieren, da Fluid nicht erkennen kann, dass es sich um ein Objekt handelt. Objekte werden in Fluid immer in {Klammern} übergeben.

Wie du an das Objekt heran kommst hast du in deinem Test schon selbst gezeigt: f:cObject.
Dieses Objekt mal an den Debugger geben... daraus sollte dann klar werden, wie/ob es in <f:for> nutzbar ist.

<f:debug>{f:cObject(typoscriptObjectPath:'lib.Artikel')}</f:debug>

Was mich bei deinem Code wundert: Du hast lib.Artikel im Typoscript definiert, benutzt zum testen aber "tmp.Artikel".