[Frage] powermail Custom Template mit Fluid TYPO3-Version: 4.7.10

  • ageibert ageibert
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    23. 10. 2013, 11:28

    Hi und hallo.
    ich nutze powermail 2.9.0 und habe hier ein völlig eigenes Template für mein Formular verwendet.

    Über TS habe ich meinen eigenen Ordner, in dem sich die Templates, Layouts und Partials befinden gesetzt.

    Ich habe die Datei Templates/Forms/Form.html folgendermaßen angepasst (unwichtige teile weg gelassen):

    1. <f:for each="{forms}" as="form">
    2. <f:for each="{form.pages}" as="page">
    3. <f:for each="{page.fields}" as="field">
    4. <f:debug>
    5. {field}
    6. </f:debug>
    7. </f:for>
    8. ....

    Das Debuggen von {field} klappt wie erwartet und gibt dann für jedes Feld in meinem Formular aus:
    ' Tx_Powermail_Domain_Model_Fields:1 ' (38 chars)
    ' Tx_Powermail_Domain_Model_Fields:2 ' (38 chars)
    ' Tx_Powermail_Domain_Model_Fields:3 ' (38 chars)
    usw.

    Nun greife ich innerhalt der Schleife <f:for each="{form.pages}" as="page"> auf die einzelnen Felder so zu:
    {page.fields.1.title}
    {page.fields.2.title}
    ...

    Leider bekomme ich nun einen Fehler:

    "
    Oops, an error occurred!
    No template has been specified. Use either setTemplateSource() or setTemplatePathAndFilename().
    "

    Ich habe bereits geprüft, dass es nicht wirklich an einem fehlenden Template liegt, sondern tatsächlich am Aufruf:
    {page.fields.2.title}

    Entferne ich diesen, wird die Seite richtig gerendert (nur ohne die Formularfelder versteht sich :)

    Wenn ich das debugge

    1. <f:debug>
    2. {page.fields}
    3. </f:debug>

    Bekomme ich tatsächlich ein "Array" als Rückmeldung, es sind also fields Elemente in page vorhanden...

    Nun das Komische:
    Bis heute hatte ich nur ein einziges powermail Formular in meinem TYPO3. Da hat dies alles wunderbar funktioniert!

    Heute habe ich ein zweites Formular hinzugefügt, und seitdem kommt dieser Fehler... Sehr komisch...

    Meine Fragen lauten wie folgt:

    1. Wie greife ich auf die einzelnen Felder in meiner for Schleife zu, wenn nicht über:
    {page.fields.1.title}
    ?

    2. Gibt es evtl eine Möglichkeit, und das wäre noch viel besser, nicht über den index eines Feldes auf dieses zuzugreifen, sondern entweder über den eindeutigen Namen, oder wenigstens über seine UID? Beispiel:
    {page.fields.vorname.title}
    oder
    {page.fields.1234.title} (1234 ist hier die UID, nicht der Index)

    Vielen Dank für jeden Tipp.


  • 1
  • ageibert ageibert
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    23. 10. 2013, 16:10

    Ich habe noch weiter geforscht und evtl. den Fehler gefunden.
    Erstellt man ein Formular in einem SysOrdner, werden in diesem SysOrdner auch die Seiten und Felder dieses Formulars abgelegt.
    Schreibt man nun sein custom Template und greift auf die Felder via deren Index zu (page.fields.1 etc.), klappt erst einmal alles.

    Legt man nun im selben SysOrdner ein neues Formular an, werden die Seiten und Felder ebenfalls in diesem Ordner abgelegt und vermischen sich mit den Feldern des ersten Formulars.

    Um den Fehler den ich bekommen habe zu umgehen, also am besten jedes Formular in einen eigenen SysOrdner legen, dann kommt es schon gar nicht dazu :)

    Sollte jemandem trotzdem der Fehler passieren, so kann man das zweite Formular einfach in einen anderen SysOrdner verschieben.
    Danach aber ganz wichtig: Das erste Formular nochmal im Backend aufrufen und speichern. Danach vorsichtshalber den Cache leeren (erst danach hat es dann bei mir wieder geklappt)

    Trotzdem wäre es mir wichtig, auf die Felder über Ihre Namen oder wenigstens UIDs zugreifen zu können. Dazu habe ich jetzt einen Issue im Forge aufgemacht, vielleicht interessiert sich ja jemand dafür:
    http://forge.typo3.org/issues/53064

  • 1