neues formularmodul :: w3concepts.form.v1
Sorry für die dumme Frage aber:
Ich habe mir das Beispielformular eingebaut. Wie oder wo ändere ich denn jetzt die Andresse, an die die Mail geschickt wird? Ist das in dem Input-Teil?
Auch die Färbung der nicht ausgefüllten Felder mir ROT (wie im Beispiel) funktioniert bei mir nicht...
PS: Ich kann den Container 7 (Bei mir mit dem Formularmodul belegt) auch in der Konfiguration nicht bearbeiten. Er wird nicht angezeigt!?!
Ich habe mir das Beispielformular eingebaut. Wie oder wo ändere ich denn jetzt die Andresse, an die die Mail geschickt wird? Ist das in dem Input-Teil?
Auch die Färbung der nicht ausgefüllten Felder mir ROT (wie im Beispiel) funktioniert bei mir nicht...
PS: Ich kann den Container 7 (Bei mir mit dem Formularmodul belegt) auch in der Konfiguration nicht bearbeiten. Er wird nicht angezeigt!?!
Style CSS
Hallo erstmal und danke für eine coole Erweiterrung in COntenido !!
Ich habe bisher die Formulare immer über Templates eingebunden.
Kann ich der Anweisung von CSS Klassen machen, über zb style:top1; ?
um daraus dann style="top1" zu bekommen ?
Ich habe im queltext die Variable $style zwar gesehen.
Aber wo wird sie defeniert ?
Gruß Klaus
Ich habe bisher die Formulare immer über Templates eingebunden.
Kann ich der Anweisung von CSS Klassen machen, über zb style:top1; ?
um daraus dann style="top1" zu bekommen ?
Ich habe im queltext die Variable $style zwar gesehen.
Aber wo wird sie defeniert ?
Gruß Klaus
Habe da auch ein kleines Problem...
Hallo.
Wäre ja echt ein tolles Modul, bloss funktioniert es bei mir leider nicht.
Ich habe zuerst das aus dem Forum, dann das von w3concepts-Website und
dann die modifizierten Modul-Varinaten probiert und ich bekomme bei der Vorschau oder auch wenn ich den Artikel freischalte nur die Fehlermeldung:
echo "No code available.";
oder auch einfach nur ein weisses Fenster.
Ich verwende Mac OS X und Firefox als Browser.
Hat hier jemand einen Tipp?
Schöne Grüße
Sascha
Wäre ja echt ein tolles Modul, bloss funktioniert es bei mir leider nicht.
Ich habe zuerst das aus dem Forum, dann das von w3concepts-Website und
dann die modifizierten Modul-Varinaten probiert und ich bekomme bei der Vorschau oder auch wenn ich den Artikel freischalte nur die Fehlermeldung:
echo "No code available.";
oder auch einfach nur ein weisses Fenster.
Ich verwende Mac OS X und Firefox als Browser.
Hat hier jemand einen Tipp?
Schöne Grüße
Sascha
Hi, wie kann ich bei der Sendebestätigung das ausgeben, was der Kunde mir per email geschickt hat?
Also etwa so:
Sie haben folgendes gesendet:
Name: Harry Müller
Email: Harry@mueller.de
usw...
Also etwa so:
Sie haben folgendes gesendet:
Name: Harry Müller
Email: Harry@mueller.de
usw...
die daten werden per post übergeben und sind folglich als superglobale variablen über $_POST ansprechbar. du musst allerdings das ganze direkt im modul lösen; das geht leider nicht einfach über den bestätigungsteil der konfiguration.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Wie würde das denn beispielhaft aussehen?
Hier mein output:
Hier mein 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;
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("CMS_VALUE[2]","CMS_VALUE[3]");
$formular->setBackgroundError("CMS_VALUE[4]");
$formular->setForm("CMS_HTML[0]");
$formular->setAnswer("CMS_HTML[1]");
$formular->process();
}
?>
Zusätzlicher Text im Mail mitsenden
Hi
erst mal danke für dieses Top-Modul!
Ich würde gerne im Mail mit den Formulardaten noch einen "Standardtext mitsenden" welchen ich in der Konfiguration eingeben kann.
Ähnlich dem Betreff, aber der Text soll im Mail selbst erscheinen
Hab schon ein bisschen rumgedocktert, aber leider krieg ich's nicht hin...
Greets
bru
erst mal danke für dieses Top-Modul!
Ich würde gerne im Mail mit den Formulardaten noch einen "Standardtext mitsenden" welchen ich in der Konfiguration eingeben kann.
Ähnlich dem Betreff, aber der Text soll im Mail selbst erscheinen
Hab schon ein bisschen rumgedocktert, aber leider krieg ich's nicht hin...
Greets
bru
folgendes problem besteht noch und ist jetzt auch bei mir aufgetreten:
[quote]
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???
[/quote]
als kundenname wäre es schön wirklich nur den kundenname zu bekommen nicht noch den anhang "@irgendeinserver.de"...
hat jemand ne idee?[/quote]
[quote]
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???
[/quote]
als kundenname wäre es schön wirklich nur den kundenname zu bekommen nicht noch den anhang "@irgendeinserver.de"...
hat jemand ne idee?[/quote]
folgendes problem besteht noch und ist jetzt auch bei mir aufgetreten. hab kundenname und emailadresse jetzt übergeben, sodass man problemlos auf die kundenmail antworten kann (daten stehen jetzt im "from:"). problem ist das der kundename einen unschönen anhang hat...
hat jemand ne idee?[/quote]
als kundenname wäre es schön wirklich nur den kundenname zu bekommen nicht noch den anhang "@irgendeinserver.de"...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???
hat jemand ne idee?[/quote]
Komme irgendwie mit dem Formular nicht so ganz klar. Habe jetzt einfach mal versucht das Beispielformular von kummer (danke
) zu übernehmen. Ich setze das Output Script bei Output rein, das Input Script bei Input und das Table Script im Formularartikel. Wenn ich mir nun die Seite anschaue, erhalte ich immer nur Text mit ###......###;###....### aber keine Formularfelder. Aber eigentlich sollten diese doch automatisch erkannt werden? Irgendwie hakt es bei mir da.
Kann mir da vielleicht jemand helfen ?
Nutze Contenido 4.4 bei all-inkl.com, falls das von Bedeutung sein sollte.
Gruß & Dank
Alex

Kann mir da vielleicht jemand helfen ?
Nutze Contenido 4.4 bei all-inkl.com, falls das von Bedeutung sein sollte.
Gruß & Dank
Alex
Re: neues formularmodul :: w3concepts.form.v1
Ein Feld für "id" wäre sehr wichtig, da bei barrierefreien Layouts Formulare mitkummer hat geschrieben:name:feldbezeichnung (pflicht)
type:text (pflicht; zur auswahl stehen: text, textarea, password, select, radio, checkbox)
valid:integer (optional; zur auswahl stehen: simpletext, text, integer, date, email, float)
mandatory:true (optional; zur auswahl stehen: true, false)
value:wert (optional; wert bezeichnet der vorgabewert)
size:12 (optional; breite des feldes)
cols:30 (optional; breite eines textarea-feldes)
rows:5 (optional; höhe eines textarea-feldes)
option:anzeigewert (pflicht bei select; wert, welcher im browser angezeigt wird)
optionvalue:speicherwert (optional; wert welcher bei selects übertragen wird)
minvalue:1 (optional; mindestwert, der einzugeben ist)
maxvalue:100 (optional; maximalwert, der eingegeben werden darf)
minlength:3 (optional; minimale anzahl zeichen, die eingegeben werden müssen)
maxlength:8 (optional; maximale anzahl zeichen, die eingegeben werden dürfen)
Code: Alles auswählen
<label for="vorname"></label><input type="text" name="vorname" id="vorname"/>
und dürfte dabei die id identisch mit den feldnamen sein? oder müsste man dafür eine weitere variable einführen?
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)