neues formularmodul :: w3concepts.form.v1
haben andere das problem auch? weil bei mir funktioniert's eigentlich.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
-
- Beiträge: 19
- Registriert: Sa 28. Aug 2004, 14:23
- Wohnort: Karlsruhe
- Kontaktdaten:
Mehrsprachig?
Hallo, ich erstelle gerade eine viersprachige Seite und suche nach einem code, der es erlaubt, unterschideliche Bezeichnungen für die Eingabefelder in den jeweiligen Sprachen zu vergeben. Also z.B.
Straße: (Hier steht Eingabefeld)
Street: (Hier steht Eingabefeld)
weiß jemand von euch, ob das geht?
Gruß Johannes
Straße: (Hier steht Eingabefeld)
Street: (Hier steht Eingabefeld)
weiß jemand von euch, ob das geht?
Gruß Johannes
das geht schon, jedoch nicht ohne erhebliche anpassungen. insbesondere bei pulldowns sind dann ja auch die optionen mehrsprachig einzugeben.
ich kann dir das modul anpassen. allerdings würde das schon was kosten. (ich muss ja davon leben)
ich kann dir das modul anpassen. allerdings würde das schon was kosten. (ich muss ja davon leben)
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
-
- Beiträge: 19
- Registriert: Sa 28. Aug 2004, 14:23
- Wohnort: Karlsruhe
- Kontaktdaten:
Mehrsprachiges Kontaktformular
Danke für das Angebot, jedoch konnte ich mittlerweile selbst eine Lösung finden. Für alle die das selbe Problem haben und gerne mehrere Sprachversionen wünschen gilt folgender Tip:
1. Modul kopieren für die verschidenen Versionen
2. Template für die verschiedenen versionen erstellen.
3. Artikel das neue Template zuweisen
4. Template konfigurieren
Fertig!
MFG Johannes
1. Modul kopieren für die verschidenen Versionen
2. Template für die verschiedenen versionen erstellen.
3. Artikel das neue Template zuweisen
4. Template konfigurieren
Fertig!
MFG Johannes
hi
wie bekomme ich es denn in diesem formular hin, dass bei der e-mail ausgabe, auch wenn ich "values" verwende, dennoch die dazugehörige "option" im mail ausgegeben wird und nicht die "value"?
beispiel:
ich habe ein pulldownmenü mit den werten "frau" und "mann". die haben die values 1 = frau und 2 = mann. in meinem mail, das ich nun bekomme steht statt "frau" nur "1".
der tipp einfach die values wegzulassen und mit maxlength zu arbeiten (z.B. wegen der pflichtfelder) klappt hier aber nicht, da beide worte gleich viele buchstaben haben.
ich komme nicht weiter. kann mir jemand helfen?
danke,
smeusel
wie bekomme ich es denn in diesem formular hin, dass bei der e-mail ausgabe, auch wenn ich "values" verwende, dennoch die dazugehörige "option" im mail ausgegeben wird und nicht die "value"?
beispiel:
ich habe ein pulldownmenü mit den werten "frau" und "mann". die haben die values 1 = frau und 2 = mann. in meinem mail, das ich nun bekomme steht statt "frau" nur "1".
der tipp einfach die values wegzulassen und mit maxlength zu arbeiten (z.B. wegen der pflichtfelder) klappt hier aber nicht, da beide worte gleich viele buchstaben haben.
ich komme nicht weiter. kann mir jemand helfen?
danke,
smeusel
Ich habe das Demo von Kummer installiert.
Jetz habe ich ein Problem:
ich würde gerne es gerne so haben:
Derjenige der das Formular auf der Homepage ausfüllt, soll seinen Namen und seine Email-Adresse ins Formular eingeben können.
Wenn ich die Nachricht zugestellt bekomme, möchte ich gerne über den Antwort Button des Mail-Programms direkt an den Absender schreiben können.
Habe schon rumprobiert, aber krieg es nicht gebacken.
Jetz habe ich ein Problem:
ich würde gerne es gerne so haben:
Derjenige der das Formular auf der Homepage ausfüllt, soll seinen Namen und seine Email-Adresse ins Formular eingeben können.
Wenn ich die Nachricht zugestellt bekomme, möchte ich gerne über den Antwort Button des Mail-Programms direkt an den Absender schreiben können.
Habe schon rumprobiert, aber krieg es nicht gebacken.
hallo oaa
das sollte keine grosse sache sein. wenn du als feldname für die email-adresse z.b. kundenemail verwendest, für den namen kundenname sowie für den vornamen kundenvorname, dann brauchst du nur im output-script (ziemlich unten im script) folgende zeile:
durch folgende zur ersetzen
hope it works!
gruss,
andreas
das sollte keine grosse sache sein. wenn du als feldname für die email-adresse z.b. kundenemail verwendest, für den namen kundenname sowie für den vornamen kundenvorname, dann brauchst du nur im output-script (ziemlich unten im script) folgende zeile:
Code: Alles auswählen
$formular->setEmailFrom("CMS_VALUE[2]","CMS_VALUE[3]");
Code: Alles auswählen
$formular->setEmailFrom($_POST['kundenemail'],$_POST['kundenname'].", ".$_POST['kundenvorname']);
gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Hallo,
Output sieht jetzt so aus:
Das Formular habe ich auch an die Variablen angepasst:
Jetzt wenn ich auf "absenden" klicke wird das formular neu geladen und es passiert nix!!1
Eine Idee???
Output sieht jetzt so aus:
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;
function w3form() {
}
// 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) {
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) {
if (!$this->formularFeldKorrekt(&$feld)) return false;
}
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']}"])) 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("^[öäüéàèâêîça-z-]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'text' && !eregi("^[ .,;!?()öäüéàèâêîça-z-]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'integer' && !eregi("^[0-9]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'float' && !eregi("^[0-9]*[.]{0,1}[0-9]*$",$_POST["{$feld['name']}"])) return false;
if (!empty($feld['valid']) && $feld['valid'] == 'date' && !eregi("^[0-9]{1,2}.[0-9]{1,2}.[0-9]{2}$",$_POST["{$feld['name']}"])) 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']}"])) return false;
// grössenbereich bei integer und float prüfen
if (!empty($feld['minvalue']) && $_POST["{$feld['name']}"] < $feld['minvalue']) return false;
if (!empty($feld['maxvalue']) && $_POST["{$feld['name']}"] > $feld['maxvalue']) return false;
// längenbereich bei allen typen prüfen
if (!empty($feld['minlength']) && strlen($_POST["{$feld['name']}"]) < $feld['minlength']) return false;
if (!empty($feld['maxlength']) && strlen($_POST["{$feld['name']}"]) > $feld['maxlength']) return false;
return true;
}
//PUBLIC
function process() {
if (!isset($_POST['sent'])) {
$this->formularAusgabe();
} elseif ($this->formularVollstaendig()) {
$this->success();
} else {
$this->formularAusgabe(true);
}
}
}
if ($edit) {
echo "<h1>Formularkonfiguration</h1>";
echo "<p>Hier ist das Formular sowie der Text einzugeben, der zusammen mit dem Formular ausgegeben werden soll:</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 = new w3form();
$formular->addEmailAdress("CMS_VALUE[0]");
$formular->setEmailSubject("CMS_VALUE[1]");
$formular->setEmailFrom($_POST['kundenemail'],$_POST['kundenname'].", ".$_POST['kundenvorname']); $formular->setBackgroundError("CMS_VALUE[4]");
$formular->setForm("CMS_HTML[0]");
$formular->setAnswer("CMS_HTML[1]");
$formular->process();
}
?>
Code: Alles auswählen
<TABLE style="WIDTH: 100%" width="100%" border=0>
<TBODY>
<TR>
<TD>Vorname / Nachname:</TD>
<TD>###name:kundenvorname; type:text; valid:simpletext; size:15; mandatory:true### / ###name:kundenname; type:text; valid:simpletext; size:15; mandatory:true###</TD></TR>
<TR>
<TD>Land:</TD>
<TD>###name:land; type:select; valid:integer; size:1; option:bitte auswählen; optionvalue:0; option:Schweiz; optionvalue:1; option:Deutschland; optionvalue:2; option:Oesterreich; optionvalue:3;value:1;minvalue:1###</TD></TR>
<TR>
<TD>Email-Adresse:</TD>
<TD>###name:kundenemail; type:text; valid:simpletext; size:15; mandatory:true###</TD></TR>
<TR>
<TD>Fach:</TD>
<TD>###name:land; type:select; valid:integer; size:1; option:bitte auswählen; optionvalue:0; option:Informatik I; optionvalue:1; option:Wirtschaftsinformatik I; optionvalue:2; value:0;minvalue:1###</TD></TR>
<TR>
<TD class="" vAlign=top>Geschlecht:</TD>
<TD>###name:geschlecht;type:radio;valid:text; value:männlich; selected:true### männlich<BR>###name:geschlecht; type:radio; valid:text; value:weiblich### weiblich<BR>###name:geschlecht; type:radio; valid:text; value:geschlechtslos### geschlechtslos</TD></TR>
<TR>
<TD class="" vAlign=top>Interessen:</TD>
<TD>
<P>###name:interesse[0];type:checkbox; valid:text; value:sport### Sport<BR>###name:interesse[1]; type:checkbox; valid:text; value:unterhaltung### Unterhaltung<BR>###name:interesse[2]; type:checkbox; valid:text; value:geschichte### Geschichte<BR>###name:interesse[3]; type:checkbox; valid:text; value:internet; selected:true### Internet<BR>###name:interesse[4]; type:checkbox; valid:text; value:sonstiges### Sonstiges</P></TD></TR>
<TR>
<TD>Bemerkungen:</TD>
<TD>###name:bemerkungen; type:textarea; valid:text; rows:6; cols:30###</TD></TR>
<TR>
<TD></TD>
<TD></TD></TR>
<TR>
<TD colSpan=2>
<P align=center><INPUT type=submit value=senden></P></TD></TR></TBODY></TABLE>
Eine Idee???
Das erst Problem habe ich gelöst!
Aber jetzt ist folgendes:
Das Skript läuft auf dem Server der Universität Regensburg.
Als Absendername steht nur eine Email-Adresse da,
und die setzt sich aus dem Kundennamen und dem Servernamen zusammen,
also
kundenname@rss1.rz.uni-regensburg.de
Was kann man da tun???
Code: Alles auswählen
valid:email;
Das Skript läuft auf dem Server der Universität Regensburg.
Als Absendername steht nur eine Email-Adresse da,
und die setzt sich aus dem Kundennamen und dem Servernamen zusammen,
also
kundenname@rss1.rz.uni-regensburg.de
Was kann man da tun???
wenn es ein pflichtfeld sein soll, muss du ohnehin noch eine dritte option angeben, die ursprünglich ausgewählt ist. also z.b. 'bitte wählen...' (oder auch einfach ein leerzeichen). und diese option hat dann wieder mehr (oder auch weniger) als vier buchstaben. dann sollte es auch wieder funktionieren (auch ohne values).smeusel hat geschrieben:hi
wie bekomme ich es denn in diesem formular hin, dass bei der e-mail ausgabe, auch wenn ich "values" verwende, dennoch die dazugehörige "option" im mail ausgegeben wird und nicht die "value"?
beispiel:
ich habe ein pulldownmenü mit den werten "frau" und "mann". die haben die values 1 = frau und 2 = mann. in meinem mail, das ich nun bekomme steht statt "frau" nur "1".
der tipp einfach die values wegzulassen und mit maxlength zu arbeiten (z.B. wegen der pflichtfelder) klappt hier aber nicht, da beide worte gleich viele buchstaben haben.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
ich sehe das problem nicht ganz. du hast einen vornamen und einen nachnamen in deinem formular? und diese übergibst du der entsprechenden methode?OAA hat geschrieben:Das erst Problem habe ich gelöst!
Aber jetzt ist folgendes:Code: Alles auswählen
valid:email;
Das Skript läuft auf dem Server der Universität Regensburg.
Als Absendername steht nur eine Email-Adresse da,
und die setzt sich aus dem Kundennamen und dem Servernamen zusammen,
also
kundenname@rss1.rz.uni-regensburg.de
Was kann man da tun???
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Ja, wenn man viel bastelt, dann kann man sich da schon weiterhelfen. Das mit den Nummern, also den Values, ist aber eine wirklich kompfortable und übersichtliche Möglichkeit. Ist wirklich mit so viel Aufwand verbunden statt der Values die Options ins E-Mail schreiben zu lassen?wenn es ein pflichtfeld sein soll, muss du ohnehin noch eine dritte option angeben, die ursprünglich ausgewählt ist. also z.b. 'bitte wählen...' (oder auch einfach ein leerzeichen). und diese option hat dann wieder mehr (oder auch weniger) als vier buchstaben. dann sollte es auch wieder funktionieren (auch ohne values).
Vielleicht stelle ich mir ja das viel zu einfach vor. Liegt daran, das ich nicht sehr viel Ahnung von PHP habe, ausser ein paar Grundkenntnisse.
Ich stelle mir das so vor:
Schaue wie optionwert von value ist und schreibe option statt value in e-mail
ist das zu einfach gedacht?
stephan[/quote]
nein, das geht tatsächlich. das ist nicht ein grundsätzliches problem. allerdings will man das ja typischerweise nicht. man hat ja die values, um sie auszugben.
aber wie gesagt, das lässt sich machen. am besten du schraubst mal daran herum. weil ich habe leider zurzeit zuviel um die ohren, um es für dich machen zu können.
tut mir leid.
gruss,
andreas
aber wie gesagt, das lässt sich machen. am besten du schraubst mal daran herum. weil ich habe leider zurzeit zuviel um die ohren, um es für dich machen zu können.
tut mir leid.
gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)