+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: FacileForms Email-Layout ändern

  1. #1
    Neu an Board
    Registriert seit
    24.06.2007
    Beiträge
    8
    Bedankte sich
    2
    Erhielt 6 Danksagungen
    in 2 Beiträgen

    Standard FacileForms Email-Layout ändern

    Ein großes Hallo in die Gemeinde,

    steh vor dem Problem: habe mit FacileForms ein ziemlich langes Formular mit vielen Benutzereingaben erstellt, klappt eigentlich alles. Versuche nun das Email-Layout zu ändern, aber keinen Schimmer wie das funzen sollte.

    Standardmäßig erhalte ich wegen der Zeile (aus der Funktion sendEmailNotification() der Datei facileforms.process.php)

    PHP-Code:
    if (count($this->maildata)) foreach ($this->maildata as $data)

                
    $body .= $data[_FF_DATA_TITLE].": ".$data[_FF_DATA_VALUE].nl(); 
    also eine Email nach folgendem Muster:

    Code:
    Vorname: Donald
    Nachname: Duck
    Geburtsort: Entenhausen
    Ledig oder verheiratet: ledig
    dies wird jedoch bei vielen Formulardaten ziemlich unübersichtlich, es muss doch eine Möglichkeit geben, die Benutzereingaben erst ab einer bestimmten Stelle einzulesen, so dass die Emailausgabe wie folgt aussieht:

    Code:
    Vorname:                      Donald
    Nachname:                     Duck
    Geburtsort:                   Entenhausen
    Ledig oder verheiratet:       ledig
    Hab schon mit einigem rumgespielt, aber da ich ne PHP-Banause bin, leider nur Humbug produziert.

    Eine Randsfrage, wenn schon dabei bin: das nl() aus obigem Codeschnipsel soll natürlich "new line" darstellen, aber ist dies echt auch ein PHP-Befehlssatz? Im PHP-Manual find ich dazu leider nix, google spuckt wegen nicht akzeptierten Sonderzeichen nur holländische Seiten aus.

    Würd mich freuen, wenn mir einer das Wochenende mit "gelöst" abrunden könnte...

    viele Grüße,
    derEA

  2. #2
    Verbringt hier viel Zeit Avatar von rabe
    Registriert seit
    31.08.2005
    Ort
    Regensburg
    Beiträge
    946
    Bedankte sich
    4
    Erhielt 375 Danksagungen
    in 215 Beiträgen

    Standard

    Hallo,

    ich bin mir nicht ganz sicher, aber ich glaube, du möchtest die "Datensatz empfangen" Email ändern und das ist falsch.
    Wenn du dem Benutzer eine Bestätigungsmail schicken möchtest ("vielen Dank für Ihre Anmeldung, Sie haben sich mit folgenden Daten registriert..." oder sowas), dann musst du das explizit programmieren und kannst dann alle Infos oder auch neue Texte einbinden, die du brauchst.

    Du musst dazu direkt in der Form bei Übermittlung PHP Code schreiben.
    Ein Beispiel findest du in den Facile Forms Beispielformularen.

    viele Grüße
    Anne-Kathrin
    Alles, was mir so unterkommt... www.medamind.de

  3. #3
    Neu an Board
    Registriert seit
    24.06.2007
    Beiträge
    8
    Bedankte sich
    2
    Erhielt 6 Danksagungen
    in 2 Beiträgen

    Standard

    Hallo rabe,

    Danke für Deine Antwort, ja, meine die "Datensatz empfangen"-Email, die nach dem Submit an die Standard-Emailadresse geschickt werden, die in der FacilesForms-Config abgespeichert ist.

    Verstehe aber nicht so recht, was daran falsch sein sollte, verletze ich da etwa Urheberrechte?

    Hab schon etliche Beispielsformulare getestet, alle übertragen die Daten im selben Format, nämlich zuerst
    PHP-Code:
    $data[_FF_DATA_TITLE
    gefolgt von einem Doppelpunkt und einem Leerzeichen, dann
    PHP-Code:
    $data[_FF_DATA_VALUE
    . Ich möchte diesen Codeabschnitt wie folgt ändern, dass nichts mehr in stufenförmiger Form (bei sehr vielen Werten ist sowas ja ziemlich unübersichtlich), sondern z.B. in Tabellenform ausgibt.

    Dass dies mit PHP realisiert werden kann, scheint mir auch klar zu sein, aber bin noch ein laufender Meter in der PHP-Communicity.

    Lieg doch richtig beim Übermittlungscode sendEmailNotification() und ändern darf ich ihn doch auch, oder?

    Werd mich in der Zwischenzeit mal mit PHP beschäftigen, seh da im Moment noch zu viele Variablen-Dagoberts.


    viele Grüße,
    derEA

  4. #4
    Verbringt hier viel Zeit Avatar von rabe
    Registriert seit
    31.08.2005
    Ort
    Regensburg
    Beiträge
    946
    Bedankte sich
    4
    Erhielt 375 Danksagungen
    in 215 Beiträgen

    Standard

    Hallo,

    nein, du liegst falsch, ich weiß ehrlich nicht mal recht, was du meinst...
    Also.
    Wähl mal das Paket "Samples" , dort die Form "Piece sending mail" und geh dann auf "Form bearbeiten". Dann schaust du dir den Reiter "übermittlungsteile" an.
    Der Code deiner Form muss analog aufgebaut sein.
    Variablen musst du natürlich aus deiner Form übernehmen.

    Jeden anderen Versuch halte ich für Quatsch.

    Viele Grüße
    Anne-Kathrin
    Alles, was mir so unterkommt... www.medamind.de

  5. Erhielt Danksagungen von:


  6. #5
    Neu an Board
    Registriert seit
    24.06.2007
    Beiträge
    8
    Bedankte sich
    2
    Erhielt 6 Danksagungen
    in 2 Beiträgen

    Standard

    Hallo rabe,

    hm, erzähl lieber kurz die Vorgeschichte und simulier den Emailinhalt, hoffe Du verstehst dann meine Absicht.

    Auf der Arbeit hab ich eine Formular-Kompoonente geupdatet, natürlich ohne Backup, schwupps war das Formular weg. Hab mich dann entschieden, FacileForms zu verwenden und sie komplett neu erstellt. Leider ist die Kollegin in der Kindergartenabteilung nicht zufrieden mit der Übermittlungs-Email, weil sie es vorher schön übersichtlich hatte, sprich:

    Code:
    Datum des Antrags:                 24.07.2007
    Kindergarten oder Kinderkrippe:    Kindergarten
    Famlienname des Kindes:            Trick
    Vorname des Kindes:                Duck
    Geburtsdatum:                      12.12.2004
    .
    .
    .
    mit FacileForms bekommen wir es aber leider standardmässig unübersichtlicher:

    Code:
    Datum des Antrags: 24.07.2007
    Kindergarten oder Kinderkrippe: Kindergarten
    Famlienname des Kindes: Trick
    Vorname des Kindes: Duck
    Geburtsdatum: 12.12.2004
    .
    .
    .
    Weiß schon die Notlösung (bestimmte Anzahl von Punkten anhängen, so dass jeder Datentitel aus genauso vielen Zeichen besteht, ist aber unschön und Sisyphusarbeit) und dachte, ich kann in sendEmailNotification() etwas manipulieren, denn wenn ich

    PHP-Code:
    $body .= $data[_FF_DATA_TITLE].": ".$data[_FF_DATA_VALUE].nl(); 
    zu

    PHP-Code:
    $body .= $data[_FF_DATA_TITLE].":          ".$data[_FF_DATA_VALUE].nl(); 
    ändere, sieht die Email auch schon besser aus, aber die Stufenform ist natürlich immer noch da.

    Lieg ich wirklich immer noch falsch oder lös ich das Problem doch mit einem speziellen Skript bei "Beginn Übermittlung"? Wenn ich da direkt ins Herz greif, wird das ja dann auch für alle weiteren FacileForms-Formulare übernommen, was auch gut wäre.

    viele Grüße,
    derEA

  7. #6
    Neu an Board
    Registriert seit
    24.06.2007
    Beiträge
    8
    Bedankte sich
    2
    Erhielt 6 Danksagungen
    in 2 Beiträgen

    Standard

    tja, hätte mich präziser ausdrücken sollen, nach viel Ach und Krach bin ich nun zu meiner gewünschten Lösung gekommen. Alles, was ich eigentlich wollte, war mit FacileForms eine HTML-Email zu erstellen, wusste ja nicht, dass die Standard-Email nur Text-basiert war.

    Im Core-Code kann man dies wohl auch mit einer oder zwei zusätzlichen Zeilen automatisieren, aber hab mich doch auf rabe verlassen und speziell für dieses eine Formular eine HTML-Email entworfen und meiner Kollegin letztendlich doch ein ins Gesicht gedrückt.

    Der Lösungsweg wäre:

    1. Form bearbeiten -> Reiter "Einstellungen" -> Email-Benachrichtigung auf "Nein" setzen, damit wir freie Bahn für unsere spezielle Email haben.

    2. Reiter "Übermittlungsteile" -> Beginn Übermittlung -> "Spezial", wir wollen ja eine HTML-Email erstellen und nichts den Standardeinstellungen überlassen, wenn wir auf "Abschicken" des Formulars drücken.

    3. Wir müssen die Funktion sendMail überarbeiten, die eigentlich 9 Parameter aufnimmt, wovon die letzten 4 jedoch standardmässig auf NULL gesetzt sind, der 7. Parameter dabei ist der Schalter Text/HTML. Also geben wir folgenden, speziellen Code für "Beginn Übermittlung" ein:

    PHP-Code:
    // declare globals used in this piece
    global $mosConfig_mailfrom$mosConfig_fromname;

    // include facile forms standard library
    $this->execPieceByName('ff_InitLib');

    // Sendmail function header
    // function sendMail($from, $fromname, $recipient, $subject, $body,
    //               $attachment = NULL, $html = NULL, $cc = NULL, $bcc = NULL)

    // Absender-Email für den Emailheader
    $from 'kinder@garten.de';

    // Name des Absenders für den Emailheader
    $fromname 'Kindergarten';

    // An diese Emailadresse werden die Formulardaten übertragen
    $recipient 'andie@kindergartenleitung.de';

    // Betreffszeile
    $subject 'Kindergarten / Kinderkrippe - ANMELDUNG';

    // Email-Body 
    $body 
    '<table border="0">
      <tr>
        <td>Datum des Antrags:</td>
        <td>' 
    ff_getSubmit('cf_datum') . '</td>
      </tr>
      <tr>
        <td>Kindergarten oder Kinderkrippe:</td>
        <td>' 
    ff_getSubmit('cf_kindergartenoderkinderkrippe') . '</td>
      </tr>
      <tr>
        <td>Familienname des Kindes:</td>
        <td>' 
    ff_getSubmit('cf_familienname') . '</td>
      </tr>
      <tr>
        <td>Vorname des Kindes:</td>
        <td>' 
    ff_getSubmit('cf_vornamedeskindes') . '</td>
      </tr>
      <tr>
        <td>Geburtsdatum des Kindes:</td>
        <td>' 
    ff_getSubmit('cf_geburtsdatumdeskindes') . '</td>
      </tr>
      //...und so weiter...
    </table>'
    ;

    //deaktiviert den Textmodus und schaltet auf HTML
    $html 'TRUE';

    $this->sendMail(
        
    $from,         
        
    $fromname,
        
    $recipient,                           
        
    $subject,   
        
    $body,
        
    NULL,
        
    $html,
        
    NULL,
        
    NULL
    ); 
    Also wenn man den 7. Parameter von sendMail setzt, kann man die Email mit HTML bearbeiten und nach eigenen Wünschen kreiern.

    Wünsch allen ein erholsames Wochenende, das werd ich auf alle Fälle haben...

    Grüße,

    derEA

  8. Erhielt Danksagungen von:


  9. #7
    Neu an Board
    Registriert seit
    10.07.2006
    Beiträge
    52
    Bedankte sich
    11
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo Zusammen,

    ich möchte auch ein wenig anpassen. Ich benutze das ganz simple Sample-Formular. Das die Betreffzeile in der Sprachdatei geändert wird, habe ich schon rausgefunden. Es geht nun darum:

    - ein echter Absender soll rein (nicht www.xyz.de - FacileForms)
    - Überschrift raus "Daten mit folgender ID gespeichert"
    - einige Kopfzeilen sollen raus (ID, Titel, Formname etc.)
    - statt "Message" Nachricht
    - Security-Code raus

    Ich nehme an, es findet viel in der facileforms.process.php statt, aber da sehe ich nicht durch. Danke für Hilfe!

    Wolf

  10. #8
    Neu an Board
    Registriert seit
    09.11.2003
    Beiträge
    19
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Wo muss man diese html code genau eingeben?
    damit email output angemessene schönheit erreicht...

    beim... Submit/submit_mail oder wo?

  11. #9
    Neu an Board
    Registriert seit
    12.09.2007
    Beiträge
    11
    Bedankte sich
    7
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    @derEA
    Welchen Befehl muss ich den eingeben, um die Eingaben aus einem Ankreuzfeld in die E-Mail zu bekommen?

  12. #10
    Neu an Board
    Registriert seit
    24.06.2007
    Beiträge
    8
    Bedankte sich
    2
    Erhielt 6 Danksagungen
    in 2 Beiträgen

    Standard

    @Wolf Larsen

    Zitat Zitat von Wolf Larsen Beitrag anzeigen
    - ein echter Absender soll rein (nicht www.xyz.de - FacileForms)
    - statt "Message" Nachricht
    Wolf
    steht doch oben beschrieben: "Form bearbeiten", beim Reiter "Übermittlungsteile" -> "Beginn Übermittlung" -> "Spezial", dort die Funktion "sendMail()" hineinkopieren und wie gewünscht anpassen.

    Zitat Zitat von Wolf Larsen Beitrag anzeigen
    - Überschrift raus "Daten mit folgender ID gespeichert"
    - einige Kopfzeilen sollen raus (ID, Titel, Formname etc.)
    Wolf
    soweit ich mich erinnern kann, musst Du da ein paar Zeilen in der Datei facileforms.process.php auskommentieren.


    Zitat Zitat von Wolf Larsen Beitrag anzeigen
    - Security-Code raus
    Wolf
    einfach Standardeintrag bei "Form bearbeiten" -> "Übermittlungsteile" -> "Beginn Übermittlung" -> "Spezial" löschen.




    @7mSeni:

    Zitat Zitat von 7mSeni Beitrag anzeigen
    Wo muss man diese html code genau eingeben?
    damit email output angemessene schönheit erreicht...

    beim... Submit/submit_mail oder wo?
    Wie oben beschrieben "Form bearbeiten" -> Reiter "Übermittlungsteile" -> Beginn Übermittlung -> "Spezial", dort wo standardmäßig der Code für den Seccode steht.




    @polli:

    Zitat Zitat von polli Beitrag anzeigen
    Welchen Befehl muss ich den eingeben, um die Eingaben aus einem Ankreuzfeld in die E-Mail zu bekommen?
    Falls Du das Formular richtig erstellt hast und ich mich richtig erinnern kann, einfach den Datenbankeintrag mit ff_getSubmit auslesen, geht so ungefähr:

    Code:
    ff_getSubmit('cf_ankreuzfeld')
    Gruß,
    derEA

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein