Formular w3concepts.form.v1 email per dropdown liste

Gesperrt
ngcat
Beiträge: 31
Registriert: Mi 1. Mär 2006, 11:48
Wohnort: Emmen / Schweiz
Kontaktdaten:

Formular w3concepts.form.v1 email per dropdown liste

Beitrag von ngcat » Mi 10. Mai 2006, 15:20

Hallo zusammen

Ich möchte gerne das Mailformular w3concepts.form.v1 umbiegen, sodass per Dropdownliste ein Empfänger ausgewählt werden kann.

Ich weiss, im Modul Mailkontakt von agon geht das, möchte aber wegen der flexibilität das w3concepst Formular benutzen.

Ich sehe nicht, wie ich das hinkrigen kann.
Kann jemand helfen?

Danke im voraus
Martin

ngcat
Beiträge: 31
Registriert: Mi 1. Mär 2006, 11:48
Wohnort: Emmen / Schweiz
Kontaktdaten:

Beitrag von ngcat » Do 11. Mai 2006, 15:45

Hier ist der code, den ich verwende.
Ich möchte im Formular per Dropdown zwischen zwei empfängern auswählen können, die im Input eingegeben werden (CMS_VAR[0] und CMS_VAR[4]).

Ich komm nicht drauf, an welcher stelle im Output dies gehandlet wird.

Danke im voraus.
Martin


Modul Input:

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :	  w3concepts.form.v1
* Author      :     Andreas Kummer
* Copyright   :     mumprecht & kummer w3concepts
* Created     :     20-08-2004
* Modified    :     20-08-2004
************************************************/


echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\"><tr valign=\"top\">";

echo "<tr><td>Zieladresse1 (alias@mydomain.com):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[0]\" value=\"CMS_VALUE[0]\" size=\"30\" /></td></tr>";

echo "<tr><td>Zieladresse2 (alias@mydomain.com):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\" size=\"30\" /></td></tr>";

echo "<tr><td>Betreff:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\" size=\"30\" /></td></tr>";

echo "<tr><td>Antwortadresse (alias@mydomain.com):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\" size=\"30\" /></td></tr>";

echo "<tr><td>Emailname (z.B. Vorname Name):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"30\" /></td></tr>";

echo "</table>";
Und der Output

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : w3concepts.form.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 20-08-2004
* Modified : 20-08-2004
************************************************/

class w3form
{
var $email, $aufgedroeselt, $form, $formularFeld, $errormsg;

function w3form() {
$this->__init_class();
}
// end constructor w3from



// PRIVATE
function sendEmail() {
$this->aufdroeseln($this->suppress('sent'));
$this->generateEmailMessage();
mail($this->email['adresses'],$this->email['subject'],$this->email['message'],"From: {$this->email['from']['name']} <{$this->email['from']['email']}>\nReply-To: {$this->email['from']['email']}\nX-Mailer: PHP/" . phpversion());
}

// PRIVATE
function aufdroeseln($aufzudroeseln,$prefix = '') {
foreach ($aufzudroeseln as $key => $value) {
if (is_array($value)) {
$this->aufdroeseln($value,$key." ");
} else {
$this->aufgedroeselt["{$prefix}{$key}"] = $value;
}
}
}

// PRIVATE
function add2Message($key,$value) {
if (strlen($key) > 25 OR strlen($value) > 54) {
$this->email['message'] .= "$key\n$value\n";
} else {
$this->email['message'] .= $key;
$this->email['message'] .= str_repeat(' ',25-strlen($key));
$this->email['message'] .= "$value\n";
}
}

// PRIVATE
function generateEmailMessage() {
if ($this->aufgedroeselt) foreach ($this->aufgedroeselt as $key => $value) {
$this->add2Message($key,$value);
}
}

// PRIVATE
function suppress() {
$suppress = func_get_args();
foreach ($_POST as $key => $value) {
if (array_search($key,$suppress) === false) $fields[$key] = $value;
}
return $fields;
}

// PUBLIC
function addEmailAdress($email) {
	if (empty($this->emailAdresses)) {
		$this->email['adresses'] .= "$email";
	} else {
		$this->email['adresses'] .= ", $email";
	}
}

// PUBLIC
function setEmailSubject($subject) {
$this->email['subject'] = $subject;
}

// PUBLIC
function setEmailFrom($email,$name) {
$this->email['from']['email'] = $email;
$this->email['from']['name'] = $name;
}

// PUBLIC
function setForm($form) {
$this->form['form'] = $form;
}

// PUBLIC
function setAnswer($answer) {
$this->form['answer'] = $answer;
}

// PUBLIC
function setBackgroundError($color) {
$this->form['colorError'] = $color;
}

// PRIVATE
function formularInterpretation(&$formular) {
$felder = split('###',$formular);
for ($i=1;$i<count($felder);$i=$i+2) {
$attributte = split(';',trim($felder[$i]));
foreach ($attributte as $attribut) {
$namewert = split(':',trim($attribut));
if ($namewert[0] != 'option' && $namewert[0] != 'optionvalue') {
$feld["{$felder[$i]}"]["{$namewert[0]}"] = $namewert[1];
} else {
$feld["{$felder[$i]}"]["{$namewert[0]}"][] = $namewert[1];
}
}
}
return $feld;
}

// PRIVATE
function formularAusgabe($sent = false) {
if($sent == true) {
echo _MAIN_ERROR_MSG_;
echo $this->errormsg;
$this->errormsg = "";
}
echo '<form action="" method="POST">';
echo '<input type="hidden" name="sent" value="true" />';
$formular = $this->form['form'];
$formulardaten = $this->formularInterpretation(&$formular);
$formular = split('###',$formular);
foreach ($formular as $formularteil) {
if (!empty($formulardaten["{$formularteil}"])) {
$this->formularFeld($formulardaten["{$formularteil}"],$sent);
} else {
echo $formularteil;
}
}
echo '</form>';
}

// PRIVATE
function formularFeld($attribute,$sent) {
$parameter = "name=\"{$attribute['name']}\"";
if ($sent && !$this->formularFeldKorrekt(&$attribute)) $style ="style=\"background-color:{$this->form['colorError']};\"";
switch ($attribute['type']) {
case 'select':
case 'password':
case 'text':
if (!empty($attribute['size'])) $parameter .= " size=\"{$attribute['size']}\"";
break;
}
switch ($attribute['type']) {
case 'textarea':
case 'text':
if (!empty($attribute['size'])) $parameter .= " size=\"{$attribute['size']}\"";
if (!empty($attribute['value'])) $value = $attribute['value'];
if (!empty($_POST["{$attribute['name']}"])) $value = $_POST["{$attribute['name']}"];
break;
}
switch ($attribute['type']) {
case 'text':
echo "<input type=\"text\" $parameter value=\"$value\" $style />";
break;
case 'password':
echo "<input type=\"password\" $parameter value=\"$value\" $style />";
break;
case 'textarea':
echo "<textarea name=\"{$attribute['name']}\" cols=\"";
echo (empty($attribute['cols']))?('20'):($attribute['cols']);
echo "\" rows=\"";
echo (empty($attribute['rows']))?('2'):($attribute['rows']);
echo "\" wrap=\"virtual\" $style>$value</textarea>";
break;
case 'select':
echo "<select $parameter $style>";
for ($i=0;$i<count($attribute['option']);$i++) {
if (!empty($attribute['optionvalue'][$i])) {
if (!empty($_POST["{$attribute['name']}"]) && $_POST["{$attribute['name']}"] == $attribute['optionvalue'][$i]) {
echo "<option value=\"{$attribute['optionvalue'][$i]}\" selected=\"selected\">{$attribute['option'][$i]}</option>\n";
} else {
if (empty($_POST["{$attribute['name']}"]) && !empty($attribute['optionvalue'][$i]) && $attribute['optionvalue'][$i] == $attribute['value']) {
echo "<option value=\"{$attribute['optionvalue'][$i]}\" selected=\"selected\">{$attribute['option'][$i]}</option>\n";
} else {
echo "<option value=\"{$attribute['optionvalue'][$i]}\">{$attribute['option'][$i]}</option>\n";
}
}
} else {
if (!empty($_POST["{$attribute['name']}"]) && $_POST["{$attribute['name']}"] == $attribute['option'][$i]) {
echo "<option selected=\"selected\">{$attribute['option'][$i]}</option>\n";
} else {
if (empty($_POST["{$attribute['name']}"]) && $attribute['option'][$i] == $attribute['value']) {
echo "<option selected=\"selected\">{$attribute['option'][$i]}</option>\n";
} else {
echo "<option>{$attribute['option'][$i]}</option>\n";
}
}
}
}
echo "</select>";
break;
case 'checkbox':
$formularbezeichner = preg_split('[\[|\]]',$attribute['name']);
if ($sent) {
if ($_POST["{$formularbezeichner[0]}"]["{$formularbezeichner[1]}"] == $attribute['value']) {
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>";
} else {
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\"/>";
}
} else {
if (!empty($attribute['selected']) && $attribute['selected'] == 'true') {
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>";
} else {
echo "<input type=\"checkbox\" $parameter value=\"{$attribute['value']}\"/>";
}
}
break;
case 'radio':
if (!empty($_POST["{$attribute['name']}"])) {
if ($_POST["{$attribute['name']}"] == $attribute['value']) {
echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>";
} else {
echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\" />";
}
} else {
if (!empty($attribute['selected']) && $attribute['selected'] == 'true') {
echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\" checked=\"checked\"/>";
} else {
echo "<input type=\"radio\" $parameter value=\"{$attribute['value']}\"/>";
}
}
break;
}
}

// PRIVATE
function formularVollstaendig() {

$formular = $this->form['form'];

$felder = $this->formularInterpretation(&$formular);

foreach ($felder as $feld) {
$this->formularFeldKorrekt(&$feld);
}
if($this->errormsg != "") {
if(substr($this->errormsg, (strlen($this->errormsg) - 2), 1) == ",") {
$this->errormsg = substr($this->errormsg, 0, (strlen($this->errormsg) - 2));
}
return false;
} else {
return true;
}
}

// PRIVATE
function success() {
$this->sendEmail();
echo $this->form['answer'];
}

// PRIVATE
function formularFeldKorrekt(&$feld) {

// pr�fung, ob pflichtfeld vorhanden
if (!empty($feld['mandatory']) && $feld['mandatory'] == 'true' && empty($_POST["{$feld['name']}"])) {
$this->errormsg .= $feld['name'].", ";
return false;
}

// wenn das formularfeld kein pflichtfeld und nicht vorhanden ist, true zur�ck geben
if (empty($_POST["{$feld['name']}"])) {
return true;
}

// regular expression pr�fungen
if (!empty($feld['valid']) && $feld['valid'] == 'simpletext' &&
!eregi("^[ .,;!?()0-9öäüéàèâêîça-z-]*$",$_POST["{$feld['name']}"])) {
$this->errormsg .= str_replace("{FIELD}", $feld['name'], _ERROR_WRONG_STRING_TYPE_);
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'text' &&
!eregi("^[ .,;!?()0-9öäüéàèâêîça-z-]*$",$_POST["{$feld['name']}"])) {
$this->errormsg .= str_replace("{FIELD}", $feld['name'], _ERROR_WRONG_STRING_TYPE_);
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'integer' &&
!eregi("^[0-9]*$",$_POST["{$feld['name']}"])) {
$this->errormsg .= str_replace("{FIELD}", $feld['name'], _ERROR_WRONG_INT_VALUE_);
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'float' &&
!eregi("^[0-9]*[.]{0,1}[0-9]*$",$_POST["{$feld['name']}"])) {
$this->errormsg .= str_replace("{FIELD}", $feld['name'], _ERROR_WRONG_FLOAT_VALUE_);
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'date' &&
!eregi("^[0-9]{1,2}.[0-9]{1,2}.[0-9]{2}$",$_POST["{$feld['name']}"])) {
$this->errormsg .= str_replace("{FIELD}", $feld['name'], _ERROR_WRONG_DATE_);
return false;
}
if( !empty($feld['valid']) && $feld['valid'] == "phone" &&
!ereg("^(\(?\+?[0-9]*\)?)?[0-9_-\/\(\)]*$", $_POST["{$feld['name']}"])) {
$this->errormsg .= str_replace("{FIELD}", $feld['name'], _ERROR_WRONG_TELEHPONE_NUMBER_);
return false;
}
if (!empty($feld['valid']) && $feld['valid'] == 'email' &&
!eregi("^[öäüéàèâêîç_a-z0-9-]+(\.[öäüéàèâêîç_a-z0-9-]+)*@[öäüéàèâêîça-z0-9-]+(\.[öäüéàèâêîça-z0-9-]+)*$",$_POST["{$feld['name']}"])) {
$this->errormsg .= str_replace("{FIELD}", $feld['name'], _ERROR_WRONG_EMAIL_);
return false;
}

// gr�ssenbereich bei integer und float pr�fen
if (!empty($feld['minvalue']) && $_POST["{$feld['name']}"] < $feld['minvalue']) {
$this->errormsg .= str_replace("{FIELD}", $feld['name'], _ERROR_WRONG_MINVALUES_);
return false;
}
if (!empty($feld['maxvalue']) && $_POST["{$feld['name']}"] > $feld['maxvalue']) {
$this->errormsg .= str_replace("{FIELD}", $feld['name'], _ERROR_WRONG_MAXVALUES_);
return false;
}

// l�ngenbereich bei allen typen pr�fen
if (!empty($feld['minlength']) && strlen($_POST["{$feld['name']}"]) < $feld['minlength']) {
$this->errormsg .= str_replace("{FIELD}", $feld['name'], _ERROR_WRONG_MINLENGTH_);
return false;
}
if (!empty($feld['maxlength']) && strlen($_POST["{$feld['name']}"]) > $feld['maxlength']) {
$this->errormsg .= str_replace("{FIELD}", $feld['name'], _ERROR_WRONG_MAXLENGTH_);
return false;
}

return true;
}


//PUBLIC
function process() {
if (!isset($_POST['sent'])) {
$this->formularAusgabe();
} elseif ($this->formularVollstaendig()) {
$this->success();
} else {
$this->formularAusgabe(true);
}
}
////////////////////////////////////////////////////////////////
// private

function __init_class()
{
@define("_ERROR_WRONG_STRING_TYPE_", "<br>".sprintf(mi18n("Das Feld"), $DasFeld[$i])." <B>'{FIELD}'</B> ".sprintf(mi18n("enth&auml;lt nicht g&uuml;ltige Zeichen"), $DasFeld1[$i]).".<br>");
@define("_ERROR_WRONG_EMAIL_", "<br>".sprintf(mi18n("Das Feld"), $DasFeld[$i])." <B>'{FIELD}'</B> ".sprintf(mi18n("enth&auml;lt keine g&uuml;ltige Email-Adresse"), $DasFeld2[$i]).".<br>");
@define("_ERROR_WRONG_TELEHPONE_NUMBER_", "<br>".sprintf(mi18n("Das Feld"), $DasFeld[$i])." <B>'{FIELD}'</B> ".sprintf(mi18n("ist keine g&uuml;ltige Telefonnummer"), $DasFeld3[$i]).".<br>");
@define("_ERROR_WRONG_MINVALUE_", "<br>".sprintf(mi18n("Der Wertebereich des Feldes"), $DasFeld4[$i])." <B>'{FIELD}'</B> ".sprintf(mi18n("wurde unterschritten"), $DasFeld5[$i]).".<br>");
@define("_ERROR_WRONG_MAXVALUE_", "<br>".sprintf(mi18n("Der Wertebereich des Feldes"), $DasFeld4[$i])." <B>'{FIELD}'</B> ".sprintf(mi18n("wurde &uuml;berschritten"), $DasFeld6[$i]).".<br>");
@define("_ERROR_WRONG_MINLENGTH_", "<br>".sprintf(mi18n("Das Feld"), $DasFeld[$i])." <B>'{FIELD}'</B> ".sprintf(mi18n("ist zu kurz"), $DasFeld7[$i]).".<br>");
@define("_ERROR_WRONG_MAXLENGTH_", "<br>".sprintf(mi18n("Das Feld"), $DasFeld[$i])." <B>'{FIELD}'</B> ".sprintf(mi18n("ist zu lang"), $DasFeld8[$i]).".");
@define("_ERROR_WRONG_DATE_", "<br>".sprintf(mi18n("Das Feld"), $DasFeld[$i])." <B>'{FIELD}'</B> ".sprintf(mi18n("ist kein g&uuml;ltiges Datum"), $DasFeld9[$i]).".<br>");
@define("_ERROR_WRONG_INT_VALUE_", "<br>".sprintf(mi18n("Das Feld"), $DasFeld[$i])." <B>'{FIELD}'</B> ".sprintf(mi18n("ist keine Ganzzahl"), $DasFeld10[$i]).".<br>");
@define("_ERROR_WRONG_FLOAT_VALUE_", "<br>".sprintf(mi18n("Das Feld"), $DasFeld[$i])." <B>'{FIELD}'</B> ".sprintf(mi18n("ist keine Fliesskommazahl"), $DasFeld11[$i]).".<br>");
@define("_MAIN_ERROR_MSG_", "<br><b>".sprintf(mi18n("Die grauen Felder sind Pflichtfelder und müssen ausgefüllt werden"), $DasFeld12[$i]).".</b><br>");

}
// end fucntion __init_class
////////////////////////////////////////////////////////
}



if ($edit) {
echo "<h1>Formularkonfiguration</h1>";
echo "<p><b>Hier ist das Formular sowie der Text einzugeben, der zusammen mit dem Formular ausgegeben werden soll:</b></p>";
echo "CMS_HTML[0]";
echo "<p>Hier ist die Ausgabe einzugeben, die erscheint, wenn das Formular erfolgreich prozessiert worden ist:</p>";
echo "CMS_HTML[1]";
} else {

$formular->addEmailAdress("CMS_VALUE[0]");
$formular->setEmailSubject("CMS_VALUE[1]");
$formular->setEmailFrom("CMS_VALUE[2]","CMS_VALUE[3]");
$formular->setBackgroundError("lightgrey");
$formular->setForm("CMS_HTML[0]");
$formular->setAnswer("CMS_HTML[1]");
$formular->process();
}

?>

Gesperrt