Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // aus xForm generierter Formular-Code
- $xform = new rex_xform();
- $xform->setObjectparams('form_skin', 'default');
- $xform->setObjectparams('form_showformafterupdate', 0);
- $xform->setObjectparams('real_field_names', true);
- $xform->setValueField('fieldset', array("fieldset_product","Produkt"));
- $xform->setValueField('select_sql', array("production","Produkt","SELECT id, name from rex_xf_productions ORDER BY name","REQUEST","","0","","0","1"));
- $xform->setValueField('checkbox', array("order_type","Ansichtskopie","nein,ja","0"));
- $xform->setValueField('radio', array("customer_type","Lizenz","Privatperson,Schule,Medienzentrum,Kreis-Online-Lizenz","","Privatperson"));
- $xform->setValueField('fieldset', array("fieldset_customer","Kunden-Daten"));
- $xform->setValueField('text', array("name","Name"));
- $xform->setValueField('text', array("phone","Telefon"));
- $xform->setValueField('text', array("mail","E-Mail-Adresse"));
- $xform->setValueField('textarea', array("message","Ihre Nachricht"));
- $xform->setValueField('text', array("street","Straße / Hausnummer"));
- $xform->setValueField('text', array("zip","PLZ","","","zip"));
- $xform->setValueField('text', array("city","Ort"));
- $xform->setValueField('fieldset', array("fieldset_order"));
- $xform->setValueField('select', array("channel","Wie wurden Sie auf uns aufmerksam?","Werbung,Google,Newsletter,Medienzentren,Empfehlung,Keine Angabe=0","","0","0","1"));
- $xform->setValueField('checkbox', array("agb","Ich habe die AGB gelesen und akzeptiert","nein,ja","0"));
- $xform->setValueField('checkbox', array("newsletter","Newsletter","nein,ja","1"));
- $xform->setValueField('datestamp', array("datestamp","mysql","","1"));
- $xform->setValidateField('empty', array("name","Bitte geben Sie im Feld \"Name\" einen Ansprechpartner an."));
- $xform->setValidateField('empty', array("mail","Bitte geben Sie im Feld \"E-Mail\" eine E-Mail-Adresse an."));
- $xform->setValidateField('email', array("mail","Bitte geben Sie im Feld \"E-Mail\" eine korrekte E-Mail-Adresse an und prüfen Sie sie auf Tippfehler."));
- // Angepasste Parameter
- $xform->setRedaxoVars($REX['ARTICLE_ID'], $REX['CUR_CLANG']);
- $xform->setActionField('createdb', array('rex_xf_order'));
- $xform->setActionField('db', array('rex_xf_order'));
- $xform->setObjectparams("form_action", seo42::getFullUrl($REX['ARTICLE_ID'], '', 'submit=1&production='. rex_request("production", "int")));
- // Wenn das Formular abgesendet wurde
- if (($form = $xform->getForm()) == '') {
- $form_values = $xform->objparams['value_pool']['email'];
- // E-Mail-Template aus xForm-Tabelle holen
- $sql = rex_sql::factory();
- $sql->debugsql = 0;
- $email_template = $sql->getArray('SELECT * FROM rex_xform_email_template WHERE name = "order" LIMIT 1');
- $email_template = $email_template[0];
- $productions = $sql->getArray('SELECT * FROM rex_xf_productions WHERE id = '.(int) $form_values['production'].'');
- // Platzhalter im Template befüllen
- $placeholders['###production###'] = $productions[0]['name'];
- $placeholders['###order_type###'] = $form_values['order_type'];
- $placeholders['###customer_type###'] = $form_values['customer_type'];
- $placeholders['###name###'] = $form_values['name'];
- $placeholders['###phone###'] = $form_values['phone'];
- $placeholders['###mail###'] = $form_values['mail'];
- $placeholders['###message###'] = rex_a79_textile(str_replace('<br />','',htmlspecialchars_decode($form_values['message'],ENT_QUOTES)));
- $placeholders['###street###'] = $form_values['street'];
- $placeholders['###zip###'] = $form_values['zip'];
- $placeholders['###city###'] = $form_values['city'];
- $placeholders['###channel###'] = $form_values['channel'];
- $placeholders['###agb###'] = $form_values['agb'];
- $placeholders['###newsletter###'] = $form_values['newsletter'];
- $placeholders['###datestamp###'] = date("d.m.Y - H:i", strtotime($form_values['datestamp']));
- $search = array_keys($placeholders);
- $replace = array_values($placeholders);
- $email_template['body_html'] = str_replace($search, $replace, $email_template['body_html']);
- // rex_mailer für den Mailversand vorbereiten
- $mail = new rex_mailer();
- if($formData['email']) {
- $mail->AddAddress($form_values['email'], $form_values['name']);
- }
- $mail->AddAddress($email_template['mail_from']);
- $mail->WordWrap = 80;
- $mail->From = $email_template['mail_from'];
- $mail->FromName = $email_template['mail_from_name'];
- $mail->Sender = $email_template['mail_from'];
- $mail->Subject = $email_template['subject'];
- $mail->Body = $email_template['body_html'];
- $mail->AltBody = strip_tags($email_template['body_html']);
- // Mail senden und bei Erfolg eine Nachricht im Browser ausgeben.
- if ($mail->Send()) {
- // Wer bei der Modul-Eingabe kein MarkItUp verwendet, kann hier auch einen hardcodierten Text in $msg einsetzen.
- $msg = rex_a79_textile(str_replace('<br />','',htmlspecialchars_decode('REX_VALUE[1]',ENT_QUOTES)));
- } else {
- // s.o.
- $msg = rex_a79_textile(str_replace('<br />','',htmlspecialchars_decode('REX_VALUE[2]',ENT_QUOTES)));
- }
- echo '<div id="xform_info">' . $msg . '</div>';
- } else {
- // Wenn ($form = $xform->getForm()) == '') false ist, dann wurde kein Formular abgesendet. Stattdessen soll das Formular ausgegeben werden.
- echo $form;
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement