Formwizard der neuen Form extension (TYPO3 Ver. 4.6.0.) [Gelöst]

  • danaron danaron
    R2-D2
    0 x
    79 Beiträge
    0 Hilfreiche Beiträge
    03. 11. 2011, 09:06

    Hallo zusammen
    Bin am testen der neuen TYPO3 Version 4.6.0., im speziellen die neue Form Extension. Mir ist aufgefallen, das [b]unter IE9 der Wizard nicht funktioniert[/b]. Hat dazu jemand eine Lösung?

    Auch konnte ich bis jetzt [b]kein Sprachpacket[/b] runterladen. Suche vor allem Deutsch, Französisch und Italienisch.
    Tipp: Beim Updaten von eine alten Version, müssen alle Sprachdateien neu geladen werden, da heues Konzept:
    1.) Alle "alten" Erweiterungen bezüglich der Übersetzung entfernen
    2.) Den Ordner "typo3conf/l10n" löschen
    3.) Alle Zip Archive im Ordner typo3temp löschen
    4.) Sprache im Erweiterungsmanager neu auswählen und aktualisieren. Ggfl. öfter wenn es nicht gleich klappt
    Hat aber bis jetzt nicht funktioniert :(
    [url=]http://test.aloco.ch/typo3[/url]
    Benutzer: test
    Passwort: test

    Danke!

    Danke für deine Hilfe. Cool wenn du dich mit mir auf den Social Media verbindest!

  • Hilfreichster Beitrag

  • jansch jansch
    Padawan
    2 x
    31 Beiträge
    2 Hilfreiche Beiträge
    12. 08. 2014, 13:58 - Hilfreichster Beitrag

    Hi Zusammen,

    auch wenn der Thread alt ist, kommt dazu doch noch ab und zu jemand auf meine Seite. Deshalb hier der Hinweis, dass ich soeben ein Update geschrieben habe, wie man mit TYPO3 6.2 die PostProcessoren in eine eigene Extension integriert und zwar so:
    http://alumnitypo3.blogspot.de/2014/08/typo3-form-extension-postprocessor-in.html

    sG, Jan


  • jansch jansch
    Padawan
    0 x
    31 Beiträge
    2 Hilfreiche Beiträge
    25. 11. 2011, 17:39

    argh, mein fehler. das Feld heißt
    senderEmailField
    nicht
    senderEmail

    zu der anderen Frage weiß ich leider auch nix. wenn aber jemand herausfindet, wie man auf tsfe daten mit dem neuen Formhandler zugreift, lasst es mich wissen :)

    sg! jan

  • danaron danaron
    R2-D2
    0 x
    79 Beiträge
    0 Hilfreiche Beiträge
    25. 11. 2011, 17:44

    [quote="jansch"]
    das Feld heißt senderEmailField
    [/quote]
    Funktioniert. Danke vielmals!
    Wir bleiben am Ball ;-)

    Danke für deine Hilfe. Cool wenn du dich mit mir auf den Social Media verbindest!

  • jansch jansch
    Padawan
    0 x
    31 Beiträge
    2 Hilfreiche Beiträge
    01. 12. 2011, 18:05

    So. habe jetzt auch das Problem gelöst, dass Variablen nicht mehr aufgelöst werden. Ob das ganze "sauber" gelöst ist, könnt ihr Euch ja streiten ;) Hab keine Filter entfernen müssen, deshalb sollte es in jedem Fall sicher sein. Musste dazu in der Sysext rumpfuschen. die korrigierte Datei hängt an und ich erstelle gleich auch mal ein Featurerequest, falls es noch keins gibt.

    Mit dieser Änderung ist es möglich, Werte aus dem TSFE auf folgende Weise direkt in den Formwizard zu schreiben.

    20 = TEXTLINE
    20 {
    name = absenderemail
    readonly = readonly
    value = {TSFE:fe_user|user|email}
    label.value = Deine Emailadresse
    }

    Anhänge (1)
    Typoscript.zip application/x-zip-compressed 0,00 B 279 heruntergeladen
  • anderlk anderlk
    R2-D2
    0 x
    112 Beiträge
    1 Hilfreiche Beiträge
    05. 12. 2011, 22:59

    Hallo,
    ich arbeite mich gerade auch in den neuen Formwizard ein, und komme an zwei Stellen nicht weiter:

    1. Wie kann ich die Meldung "The form has been sent successfully by mail" welche nach dem Absenden erscheint anpassen? Könnte ich stattdessen auch auf eine Antwortseite weiterleiten?
    2. Ist es möglich, dem Absender, sofern er eine Mailadresse angegeben hat eine Bestätigungsmail zu senden, dass die Nachricht erfolgreich eingegangen ist?

    Vielen Dank,
    Anderl

  • jansch jansch
    Padawan
    0 x
    31 Beiträge
    2 Hilfreiche Beiträge
    06. 12. 2011, 08:59

    [quote="anderlk"]
    Hallo,
    ich arbeite mich gerade auch in den neuen Formwizard ein, und komme an zwei Stellen nicht weiter:

    1. Wie kann ich die Meldung "The form has been sent successfully by mail" welche nach dem Absenden erscheint anpassen? Könnte ich stattdessen auch auf eine Antwortseite weiterleiten?
    2. Ist es möglich, dem Absender, sofern er eine Mailadresse angegeben hat eine Bestätigungsmail zu senden, dass die Nachricht erfolgreich eingegangen ist?

    Vielen Dank,
    Anderl

    [/quote]
    Hi Anderl,

    bei der ersten Teilfrage von 1. kann ich Dir helfen. Das kann man im Postprocessor eintragen.

    1. postProcessor {
    2. 1 = mail
    3. 1 {
    4. messages {
    5. success = Hier Deine Erfolgstext
    6. error = Fehlermeldung
    7. }
    8. }
    9. }

    Die anderen Dinge wären möglich, wenn Du Dir selbst einen weiteren Postprocessor schreibst. Das hab ich selbst aber auch noch nicht gemacht. Um die ganze Logik zu verstehen musst Du Dich mit Extbase gut auskennen, was ich selbst leider auch noch nicht tue. Der Typoscriptteil könnte dann so aussehen:

    1. postProcessor {
    2. 1 = mail
    3. 1 {
    4. messages {
    5. success = Hier Deine Erfolgstext
    6. error = Fehlermeldung
    7. }
    8. }
    9. 2 = meinPostProc
    10. 2 {
    11. forwardIDSeite = 36
    12. sendConfirmationMail = 1
    13. }
    14. }

    Jetzt musst Du der Form Extension noch irgendwie beibringen, dass sie eine PHP Klasse mit dem Namen tx_form_System_Postprocessor_meinPostProc erkennt und diese Klasse ausprogrammieren. Wenn Du es geschafft hast diese Klasse anzumelden, meld Dich mal wieder hier, die Klasse schreiben schaffen wir zusammen :)

    Gruß, Jan

  • jansch jansch
    Padawan
    0 x
    31 Beiträge
    2 Hilfreiche Beiträge
    07. 12. 2011, 16:15

    [quote="anderlk"]
    Hallo,
    ich arbeite mich gerade auch in den neuen Formwizard ein, und komme an zwei Stellen nicht weiter:

    1. Wie kann ich die Meldung "The form has been sent successfully by mail" welche nach dem Absenden erscheint anpassen? Könnte ich stattdessen auch auf eine Antwortseite weiterleiten?
    2. Ist es möglich, dem Absender, sofern er eine Mailadresse angegeben hat eine Bestätigungsmail zu senden, dass die Nachricht erfolgreich eingegangen ist?
    [/quote]

    Hallo Anderl,

    hab für die erste Frage jetzt mal einen eigenen Postprocessor geschrieben. Die Anleitung dazu findest Du hier: http://alumnitypo3.blogspot.com/2011/12/typo3-46-und-die-neue-form-extension.html

    Auf gleiche Weise kannst Du Dir dann auch nen weiteren Postprocessor schreiben, der dann die Email an den Absender schickt. Alles, was Du dafür brauchst findest Du sicher im Mail Postprocessor. Dann natürlich daran denken den Redirect Postproc. als letzten Postproc. einzufügen.

    Schöne Grüße!

    Jan

  • anderlk anderlk
    R2-D2
    0 x
    112 Beiträge
    1 Hilfreiche Beiträge
    08. 12. 2011, 14:08

    Hallo Janssch,

    danke für Deine Tipps. Wenn man mit Extbase noch nichts zu tun hatte, finde ich den Einstieg in den neuen Formwizard schon herftig, wenn man nur ein wenig mehr hätte als ein einfaches Kontaktforumlar,...
    In der Doku findet man zum Beispiel gar keine Hinweise zu den postProcessor.

    Wenn ich deinen Link richtig verstanden habe, muss ich die PHP Datei im extension ordner von Form ablegen, und die Postprocessor.php um die beiden zeilen erwweitern? das ist aber nicht schön, denn wenn ich ein Update fahre, muss ich das ganze wieder anpassen. Habe ich da etwas falsch verstanden, oder geht das nicht eleganter?

    Aber immerhin ich habe es jetzt zumindest schon mal soweit hinbekommen, das das Formular korrekt versendet wird.

    Habe auch rausgefunden, wie man den Absendernamen in die Mail integriert.

    1. senderNameField = name

    Bei meinem Formular ist es aber jetzt so, dass ich als Name gerne Vor- und Nachname hättte, und beide stehen in getrennten Feldern.
    Ist das standardmäßig auch möglich, oder brauche ich da auch schon einen eigenen Postprozessor?

    Danke, Anderl

  • jansch jansch
    Padawan
    0 x
    31 Beiträge
    2 Hilfreiche Beiträge
    08. 12. 2011, 15:20

    [quote="anderlk"]
    Hallo Janssch,

    danke für Deine Tipps. Wenn man mit Extbase noch nichts zu tun hatte, finde ich den Einstieg in den neuen Formwizard schon herftig, wenn man nur ein wenig mehr hätte als ein einfaches Kontaktforumlar,...
    In der Doku findet man zum Beispiel gar keine Hinweise zu den postProcessor.

    Wenn ich deinen Link richtig verstanden habe, muss ich die PHP Datei im extension ordner von Form ablegen, und die Postprocessor.php um die beiden zeilen erwweitern? das ist aber nicht schön, denn wenn ich ein Update fahre, muss ich das ganze wieder anpassen. Habe ich da etwas falsch verstanden, oder geht das nicht eleganter?

    Aber immerhin ich habe es jetzt zumindest schon mal soweit hinbekommen, das das Formular korrekt versendet wird.

    Habe auch rausgefunden, wie man den Absendernamen in die Mail integriert.

    1. senderNameField = name

    Bei meinem Formular ist es aber jetzt so, dass ich als Name gerne Vor- und Nachname hättte, und beide stehen in getrennten Feldern.
    Ist das standardmäßig auch möglich, oder brauche ich da auch schon einen eigenen Postprozessor?

    Danke, Anderl
    [/quote]

    Hi Anderl,

    Du musst einfach die Datei im Ordner
    sysext\form\Classes\System\Postprocessor
    ablegen. Die 2 Zeilen sind schon aus der Forward.php brauchst, die also nirgends anzupassen. Das Typoscript sagt dem PostProcessor nach was es suchen soll. Ist aber wie im Blog geschrieben nicht wirklich optimal in dieser Lösung. Ich verstehe aber noch nicht, wie ich es anders adressieren könnte.

    Zu der anderen Frage kommst Du so zu einer Antwort (wenn Try and Error zu einfach ist):
    1. Die Email wird im Mail Postprocessor zusammengebaut und versandt. Also suchst Du in der Datei
    Mail.php im Ordner sysext\form\Classes\System\Postprocessor nach senderNameField und findest folgende Zeile:
    $fromName = $this->requestHandler->get($this->typoScript['senderNameField']);

    2. Jetzt musst Du noch schauen, was die Methode get() aus dem $this->typoScript['senderNameField'] macht. In der Variable $this->typoScript['senderNameField'] steht ja erst Mal nur der Wert der Variablen, in der der Wert steht. Also suchst Du immer noch in der Mail.php nach "requestHandler" und findest ganz oben folgende Deklaration:
    /**
    * @var tx_form_System_Request
    */
    protected $requestHandler;

    Das @var tx_form_System_Request sagt Dir, dass Du im Ordner Classes\System\Request die Datei Request.php suchen musst. In dieser Datei gibt es die get() Methode. Die gibt aber nur eine Variable zurück aus Get oder Post:
    return $_GET[$this->prefix][$key];

    d. h. Du müsstest Dir einen eigenen Postprocessor schreiben für dein Problem.

  • anderlk anderlk
    R2-D2
    0 x
    112 Beiträge
    1 Hilfreiche Beiträge
    08. 12. 2011, 15:23

    Hallo Jansch,

    super vielen Dank für Deine ausführliche Erläuterungen.
    Na dann werde ich mich da wohl mal einarbeiten müssen.

    Danke Anderl