[Frage] Frontend-User-Login in ein Formhandler multistep Formular integrieren [Gelöst] TYPO3-Version: 6.1.1

  • oligodrom oligodrom
    TYPO3-Anwärter
    0 x
    4 Beiträge
    0 Hilfreiche Beiträge
    12. 01. 2014, 12:30

    Hallo liebe TYPO3-Gemeinde,

    ich bin gerade dabei, ein 4-Seitiges Formular mit dem Formhandler zu realisieren.
    Auf der 2. Seite soll der User die Möglichkeit haben, sich als Frontend-User Anzumelden damit seine persönlichen Daten auf der 3. Seite vorgeladen werden können.

    Hierfür habe ich einen eigenen Validator (ErrorCheck) genutzt der den Benutzer mit Username und Passwort verifiziert und auch erfolgreich eine Frontend-Session anlegt. Bis hier hin klappt alles wunderbar.

    Nun versuche ich auf der 3. Seite die Formularfelder mit Hilfe eines preProcessors wie folgt vorzuladen:

    1. preProcessors {
    2. 1.class = Tx_Formhandler_PreProcessor_LoadDefaultValues
    3. 1.config {
    4. #Prefill field in step 3
    5. 3 {
    6. vorname.defaultValue = TEXT
    7. vorname.defaultValue.data = TSFE:fe_user|user|first_name
    8. }
    9. }
    10. }

    Das funktioniert leider nicht. Ich vermute da die Frontend-Session noch nicht existiert hat als das Formular gestartet wurde. Wenn ich das Formular nun noch mal starte und bereits angemeldet bin, werden die Daten des fe_users erfolgreich in die 3. Seite eingefügt.

    Habt ihr eine Idee wie ich das Problem in nur einem Schritt lösen kann? Also Start der fe_session durch den Validator in Schritt 2 und Übergabe der Daten aus fe_users mit Hilfe des preProcessors in Schritt 3?

    Vielen Dank und viele Grüße
    Robert

  • oligodrom oligodrom
    TYPO3-Anwärter
    0 x
    4 Beiträge
    0 Hilfreiche Beiträge
    13. 01. 2014, 15:41 - Lösung

    Am Ende war es dann wieder viel einfacher als gedacht! Wenn die die Werte nicht via Tx_Formhandler_PreProcessor_LoadDefaultValues sondern einfach als Marker übergebe, benötige ich nicht mal die UserFunction, dann reicht folgendes:

    1. value_vorname = TEXT
    2. value_vorname.data = TSFE:fe_user|user|first_name

    Noch mal vielen Dank für die Hilfe!

  • Hilfreichster Beitrag

  • Schweriner Schwerine...
    Jedi-Ratsmitglied
    1 x
    554 Beiträge
    60 Hilfreiche Beiträge
    13. 01. 2014, 08:34 - Hilfreichster Beitrag

    Probier mal eine UserFunction zum befüllen von Markern ;-)

    1. includeLibs.meineUser= fileadmin/xy/tmpl/xyz/meineFunction.php
    2.  
    3. predef.myForm{
    4. name = Mein Formular
    5. addErrorAnchors = 0
    6. formValuesPrefix = formhandler
    7.  
    8.  
    9. markers {
    10. a_summe = USER
    11. a_summe {
    12. userFunc = user_meineFunc->main
    13. value = abc
    14. }
    15. }
    16. }


  • 1
  • Schweriner Schwerine...
    Jedi-Ratsmitglied
    0 x
    554 Beiträge
    60 Hilfreiche Beiträge
    12. 01. 2014, 15:53

    Ich musste leider auch schon schmerzvoll feststellen, dass Formhandler die Default Values nur im ersten Schritt anlegt und nicht für jeden Schritt seperat. Kann leider gerade nicht genau die Stelle und Art und Weise sagen wie, aber ich habe eine UserFunction eingebunden, die Felder mit Daten vorbelegt. Eine andere Möglichkeit habe ich bis heute nicht gefunden... .

  • oligodrom oligodrom
    TYPO3-Anwärter
    0 x
    4 Beiträge
    0 Hilfreiche Beiträge
    12. 01. 2014, 20:18

    Danke für den Gedankenanstoß. Habe schon darüber nachgedacht das Problem mit einer userFunc zu lösen und auch schon bisschen damit rumprobiert. Leider stehe ich damit wieder vor dem gleichen Problem. Wenn ich die userFunc über den preProcessor aufrufe, wird sie auch nur zum Start des Formulars ausgeführt. Ich müsste einen Weg finden, sie beim Aufruf der 3. Formularseite zu starten.

  • Schweriner Schwerine...
    Jedi-Ratsmitglied
    1 x
    554 Beiträge
    60 Hilfreiche Beiträge
    13. 01. 2014, 08:34

    Probier mal eine UserFunction zum befüllen von Markern ;-)

    1. includeLibs.meineUser= fileadmin/xy/tmpl/xyz/meineFunction.php
    2.  
    3. predef.myForm{
    4. name = Mein Formular
    5. addErrorAnchors = 0
    6. formValuesPrefix = formhandler
    7.  
    8.  
    9. markers {
    10. a_summe = USER
    11. a_summe {
    12. userFunc = user_meineFunc->main
    13. value = abc
    14. }
    15. }
    16. }

  • oligodrom oligodrom
    TYPO3-Anwärter
    0 x
    4 Beiträge
    0 Hilfreiche Beiträge
    13. 01. 2014, 15:41

    Am Ende war es dann wieder viel einfacher als gedacht! Wenn die die Werte nicht via Tx_Formhandler_PreProcessor_LoadDefaultValues sondern einfach als Marker übergebe, benötige ich nicht mal die UserFunction, dann reicht folgendes:

    1. value_vorname = TEXT
    2. value_vorname.data = TSFE:fe_user|user|first_name

    Noch mal vielen Dank für die Hilfe!

  • Schweriner Schwerine...
    Jedi-Ratsmitglied
    0 x
    554 Beiträge
    60 Hilfreiche Beiträge
    13. 01. 2014, 16:50

    Joa... in deinem Fall funktioniert es natürlich auch so hihi. Bei mir brauchte ich aber leider noch ne UserFunc :P

  • 1