Seite 1 von 1
Button Sprach-Problem mit w3concepts.form
Verfasst: Di 18. Sep 2007, 16:18
von Thorus_de
Hallo Contenidos,
hab schon zahlreiche Varianten und Möglichkeiten ausprobiert und nix funktionierte, deshalb mein erstes Posting hier.
Benutze zum erstenmal dieses Form von w3concepts und hab mir den letzten Stand aufgebaut. Alles wunderbar, bis auf den Übermittlungsbutton.
Habe über den Html-Editor im Wyswyg folgendes eingegeben:
<input name="input" type="submit" />
es erscheint dann ein Button mit "Submit Query".
Da ich das ganze auf Deutsch haben will, habe ich es schon mit value, als class Button und und probiert.
Aber entweder kommt nur Unsinn oder immer die englische Bezeichnung heraus. Value wird entweder ignoriert oder beim abspeichern einfach weggelöscht.
Kann mir jemand den entscheidenden Tipp geben? Sorry im voraus, wahrscheinlich hab ich was total einfaches übersehen.
Vielen Dank,
Thorus
Re: Button Sprach-Problem mit w3concepts.form
Verfasst: Di 18. Sep 2007, 18:08
von derSteffen
Muss man denn nicht im WYSIWYG das eingeben?
Verfasst: Di 18. Sep 2007, 18:22
von Thorus_de
Ja auch. Aber den Button (soweit ich das verstanden habe) wird hier auch eingefügt.
Verfasst: Di 18. Sep 2007, 18:33
von Thorus_de
Vielleicht hab ich das auch falsch verstanden:
Ich geb die Daten ein:
...
###name:Telefonabends; type:text; size:60###
...
und dann den Submit-Button wie oben beschrieben.
Merci für meine erste Antwort

Verfasst: Di 18. Sep 2007, 19:33
von derSteffen
Thorus_de hat geschrieben:Vielleicht hab ich das auch falsch verstanden:
Ich geb die Daten ein:
...
###name:Telefonabends; type:text; size:60###
...
und dann den Submit-Button wie oben beschrieben.
Merci für meine erste Antwort

Hallo Thorus, ich meinte damit anstelle
<input name="input" type="submit" /> sollst du mal versuchen
###name:senden;type:submit### das in den WYSIWYG-Editor zu schreiben.
Bitte gebe dann mal bescheid ob das geklappt hat.
MfG
Verfasst: Di 18. Sep 2007, 20:52
von Thorus_de
Hab es ausprobiert, wäre eigentlich auch logisch das dies ein Formularfeld ist.
Leider hat es dennoch nicht geklappt. Hab es auch mit sent ausprobiert und im Output-Modul nach entsprechenden Parametern geschaut.
War leider nix.
Trotzdem danke,
viele Grüße,
Thorus
Verfasst: Di 18. Sep 2007, 21:25
von GaMbIt_
Ich hab das jetzt in 2 Systemen ausprobiert...
jeweils mit dem input Tag und einem selbst gesetzten Value...
Hat bei jedem funktioniert...
Im 4.6.8 er Contenido , MCE Version leider nicht bekannt...
macht mir der Editor das hier draus... funktioniert aber trotzdem...
In einer neuen Version die ich gerade teste macht er mir diese Änderungen nicht... liegt aber möglicherweise daran dass ich den XHTML Output noch nicht eingestellt hab...
Verfasst: Di 18. Sep 2007, 21:35
von GaMbIt_
Das hier funktioniert nicht... der Typ wird nicht ersetzt... vielleicht erweitere ich das ja mal...
Verfasst: Di 18. Sep 2007, 23:01
von GaMbIt_
sodele... kleine Änderung...
das "vielleicht erweitere ich das mal ist eben passiert"
Ich hab das Submit Feld hinzugefügt ...
type:submit wird nun unterstützt...
die Eigenschaft value:blafasel gibt nun automatisch ein "blafasel" als Buttontext aus... falls der value nicht gesetzt ist wir ein "Absenden" als default Text verwendet.
name setzt den Namen.
Hier 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
************************************************/
/**
* Submit Feld hinzugefügt am 18.09.2007 von GaMbIt
*/
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':
case 'submit'; // add submit field
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;
// Custom Changes GaMbIt
case 'submit':
if(!empty($value))
echo "<input name=\"{$attribute['name']}\" type=\"submit\" $parameter value=\"$value\" />";
else
echo "<input name=\"{$attribute['name']}\" type=\"submit\" $parameter value=\"Absenden\" />";
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();
}
?>
Verfasst: Mi 19. Sep 2007, 08:24
von kummer
der submit-button war bisher nicht drin in der klasse. der grund ist, dass dem anwender die möglichkeiten sowenig wie möglich eingeschränkt werden sollen. also das anbringen von javascript usw.
trotzdem danke für die anpassung.
mfg,
andreas
Verfasst: Mi 19. Sep 2007, 11:34
von GaMbIt_
Ist das nicht immer noch möglich??
Wenn der Submit Button selbst eingefügt wird kann man doch Javascript verwenden... oder nen Textlink mit "forms.submit()" oder sowas..
Verfasst: Mi 19. Sep 2007, 12:11
von kummer
absolut, das hast du recht...

Passsst
Verfasst: Mi 19. Sep 2007, 22:05
von Thorus_de
Vielen Dank zusammen, es klappt jetzt auch bei mir
Habe die Ausgabe in die E-Mail noch unterdrückt und jetzt ist es abschlussreif.
Ein glücklicher Anwender,
Thorus