diff --git a/php/cl_contactform_output.php b/php/cl_contactform_output.php
index 1283fb2..77a3b5f 100644
--- a/php/cl_contactform_output.php
+++ b/php/cl_contactform_output.php
@@ -8,8 +8,6 @@
* modified and adapted to Contenido 4.8 under PHP 5.x by Murat Purc (2013-08-24)
*/
-use PHPMailer\PHPMailer\PHPMailer;
-
$sFrontEndPath = cRegistry::getClientConfig(cRegistry::getClientId())['path']['frontend'] . 'securimage' . DIRECTORY_SEPARATOR;
$captchaInstalled = false;
if (is_readable($sFrontEndPath)) {
@@ -162,7 +160,7 @@ class w3form
echo $item;
}
}
-
+ echo '';
echo '';
}
@@ -170,16 +168,16 @@ class w3form
{
$style = '';
$value = '';
- $parameter = "name=\"{$attribute['name']}\"";
+ $parameter = 'name="' . $attribute['name'] . '"';
if ($sent && !$this->formFieldCorrect($attribute))
- $style = "style=\"background-color:{$this->form['colorError']};\"";
+ $style = 'style="background-color: ' . $this->form['colorError'] . ';"';
switch ($attribute['type']) {
case 'select':
case 'password':
case 'text':
if (!empty($attribute['size']))
- $parameter .= " size=\"{$attribute['size']}\"";
+ $parameter .= ' size="' . $attribute['size'] . '"';
break;
}
@@ -187,7 +185,7 @@ class w3form
case 'textarea':
case 'text':
if (!empty($attribute['size']))
- $parameter .= " size=\"{$attribute['size']}\"";
+ $parameter .= ' size="' . $attribute['size'] . '"';
if (!empty($attribute['value']))
$value = $attribute['value'];
if (!empty($_POST["{$attribute['name']}"]))
@@ -435,20 +433,21 @@ class w3form
}
-if (isset($edit) && $edit) {
+if (cRegistry::isBackendEditMode()) {
echo "
" . mi18n("Formularkonfiguration") . "
";
echo "" . mi18n("Hier ist das Formular sowie der Text einzugeben, der zusammen mit dem Formular ausgegeben werden soll:") . "
";
- echo "CMS_HTML[0]";
+ echo "CMS_HTML[100]";
echo "" . mi18n("Hier ist die Ausgabe einzugeben, die erscheint, wenn das Formular erfolgreich prozessiert worden ist:") . "
";
- echo "CMS_HTML[1]";
+ echo "CMS_HTML[101]";
} else {
$form = new w3form($captchaInstalled);
$form->addEmailAdress("CMS_VALUE[0]");
$form->setEmailSubject("CMS_VALUE[1]");
$form->setEmailFrom("CMS_VALUE[2]", "CMS_VALUE[3]");
$form->setBackgroundError("CMS_VALUE[4]");
- $form->setForm("CMS_HTML[0]");
- $form->setAnswer("CMS_HTML[1]");
+ $form->setForm("CMS_HTML[100]");
+ $form->setAnswer("CMS_HTML[101]");
$form->process();
}
+
?>
\ No newline at end of file
diff --git a/php/form.org.php b/php/form.org.php
new file mode 100644
index 0000000..cd8edac
--- /dev/null
+++ b/php/form.org.php
@@ -0,0 +1,308 @@
+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';
+ echo '';
+ $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 '';
+ }
+
+ // 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 "";
+ break;
+ case 'password':
+ echo "";
+ break;
+ case 'textarea':
+ echo "";
+ break;
+ case 'select':
+ echo "";
+ break;
+ case 'checkbox':
+ $formularbezeichner = preg_split('[\[|\]]',$attribute['name']);
+ if ($sent) {
+ if ($_POST["{$formularbezeichner[0]}"]["{$formularbezeichner[1]}"] == $attribute['value']) {
+ echo "";
+ } else {
+ echo "";
+ }
+ } else {
+ if (!empty($attribute['selected']) && $attribute['selected'] == 'true') {
+ echo "";
+ } else {
+ echo "";
+ }
+ }
+ break;
+ case 'radio':
+ if (!empty($_POST["{$attribute['name']}"])) {
+ if ($_POST["{$attribute['name']}"] == $attribute['value']) {
+ echo "";
+ } else {
+ echo "";
+ }
+ } else {
+ if (!empty($attribute['selected']) && $attribute['selected'] == 'true') {
+ echo "";
+ } else {
+ echo "";
+ }
+ }
+ 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 "Formularkonfiguration
";
+ echo "Hier ist das Formular sowie der Text einzugeben, der zusammen mit dem Formular ausgegeben werden soll:
";
+ echo "CMS_HTML[0]";
+ echo "Hier ist die Ausgabe einzugeben, die erscheint, wenn das Formular erfolgreich prozessiert worden ist:
";
+ 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();
+}
+
+?>
diff --git a/php/murat_input.php b/php/murat_input.php
new file mode 100644
index 0000000..2faece5
--- /dev/null
+++ b/php/murat_input.php
@@ -0,0 +1,37 @@
+?>
+
+ " . mi18n("Zieladresse (alias@mydomain.com):") . " |
+ |
+
+
+ " . mi18n("Betreff:") . " |
+ |
+
+
+ " . mi18n("Antwortadresse (alias@mydomain.com):") . " |
+ |
+
+
+ " . mi18n("Emailname (z.B. Vorname Name):") . " |
+ |
+
+
+ " . mi18n("Hintergrundfarbe bei Fehlern (z.B. red):") . " |
+ |
+
+
+";
diff --git a/php/murat_output.php b/php/murat_output.php
new file mode 100644
index 0000000..ae3b81d
--- /dev/null
+++ b/php/murat_output.php
@@ -0,0 +1,344 @@
+email = array(
+ 'adresses' => '',
+ 'from' => array(
+ 'name' => '',
+ 'email' => ''
+ ),
+ 'message' => '',
+ 'subject' => ''
+ );
+
+ $this->form = array(
+ 'form' => '',
+ 'answer' => '',
+ 'colorError' => ''
+ );
+ }
+
+ private function sendEmail() {
+ $this->unravel($this->suppress('sent'));
+ $this->generateEmailMessage();
+ mail(
+ $this->email['adresses'],
+ $this->email['subject'],
+ $this->email['message'],
+ sprintf(
+ "From: %s <%s>\nReply-To: %s\nX-Mailer: PHP/%s",
+ $this->email['from']['name'],
+ $this->email['from']['email'],
+ $this->email['from']['email'],
+ phpversion()
+ )
+ );
+ }
+
+ private function unravel($toUnravel, $prefix = '') {
+ foreach ($toUnravel as $key => $value) {
+ if (is_array($value)) {
+ $this->unravel($value, $key . ' ');
+ } else {
+ $this->unraveled["{$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->unraveled)
+ foreach ($this->unraveled 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;
+ }
+
+ public function formInterpretation(&$form) {
+ $fields = explode('###', $form);
+ $field = array();
+
+ for ($i = 1; $i < count($fields); $i = $i + 2) {
+ $attributte = explode(';', trim($fields[$i]));
+ foreach ($attributte as $attribute) {
+ $nameValue = explode(':', trim($attribute));
+ if ($nameValue[0] != 'option' && $nameValue[0] != 'optionvalue') {
+ $field["{$fields[$i]}"]["{$nameValue[0]}"] = $nameValue[1];
+ } else {
+ $field["{$fields[$i]}"]["{$nameValue[0]}"][] = $nameValue[1];
+ }
+ }
+ }
+
+ return $field;
+ }
+
+ public function formOutput($sent = false) {
+ echo '';
+ }
+
+ public function formField($attribute, $sent) {
+ $parameter = "name=\"{$attribute['name']}\"";
+ if ($sent && !$this->formFieldCorrect($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 "";
+ break;
+ case 'password':
+ echo "";
+ break;
+ case 'textarea':
+ echo "";
+ break;
+ case 'select':
+ echo "";
+ break;
+ case 'checkbox':
+ $formId = preg_split('[\[|\]]', $attribute['name']);
+ if ($sent) {
+ if ($_POST["{$formId[0]}"]["{$formId[1]}"] == $attribute['value']) {
+ echo "";
+ } else {
+ echo "";
+ }
+ } else {
+ if (!empty($attribute['selected']) && $attribute['selected'] == 'true') {
+ echo "";
+ } else {
+ echo "";
+ }
+ }
+ break;
+ case 'radio':
+ if (!empty($_POST["{$attribute['name']}"])) {
+ if ($_POST["{$attribute['name']}"] == $attribute['value']) {
+ echo "";
+ } else {
+ echo "";
+ }
+ } else {
+ if (!empty($attribute['selected']) && $attribute['selected'] == 'true') {
+ echo "";
+ } else {
+ echo "";
+ }
+ }
+ break;
+ }
+ }
+
+ private function formComplete() {
+ $form = $this->form['form'];
+ $fields = $this->formInterpretation($form);
+
+ foreach ($fields as $field) {
+ if (!$this->formFieldCorrect($field)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ private function success() {
+ $this->sendEmail();
+ echo $this->form['answer'];
+ }
+
+ private function formFieldCorrect(&$field) {
+ // prüfung, ob pflichtfeld vorhanden
+ if (!empty($field['mandatory']) && $field['mandatory'] == 'true' && empty($_POST["{$field['name']}"]))
+ return false;
+
+ // wenn das formularfeld kein pflichtfeld und nicht vorhanden ist, true zurück geben
+ if (empty($_POST["{$field['name']}"]))
+ return true;
+
+ // regular expression prüfungen
+ if (!empty($field['valid']) && $field['valid'] == 'simpletext' && !preg_match("/^[öäüéàèâêîça-z-]*$/i", $_POST["{$field['name']}"]))
+ return false;
+ if (!empty($field['valid']) && $field['valid'] == 'text' && !preg_match("/^[ .,;!?()öäüéàèâêîça-z-]*$/i", $_POST["{$field['name']}"]))
+ return false;
+ if (!empty($field['valid']) && $field['valid'] == 'integer' && !preg_match("/^[0-9]*$/", $_POST["{$field['name']}"]))
+ return false;
+ if (!empty($field['valid']) && $field['valid'] == 'float' && !preg_match("/^[0-9]*[.]{0,1}[0-9]*$/", $_POST["{$field['name']}"]))
+ return false;
+ if (!empty($field['valid']) && $field['valid'] == 'date' && !preg_match("/^[0-9]{1,2}.[0-9]{1,2}.[0-9]{2}$/", $_POST["{$field['name']}"]))
+ return false;
+ if (!empty($field['valid']) && $field['valid'] == 'email' && !preg_match("/^[öäüéàèâêîç_a-z0-9-]+(\.[öäüéàèâêîç_a-z0-9-]+)*@[öäüéàèâêîça-z0-9-]+(\.[öäüéàèâêîça-z0-9-]+)*$/i", $_POST["{$field['name']}"]))
+ return false;
+
+ // grössenbereich bei integer und float prüfen
+ if (!empty($field['minvalue']) && $_POST["{$field['name']}"] < $field['minvalue'])
+ return false;
+ if (!empty($field['maxvalue']) && $_POST["{$field['name']}"] > $field['maxvalue'])
+ return false;
+
+ // längenbereich bei allen typen prüfen
+ if (!empty($field['minlength']) && strlen($_POST["{$field['name']}"]) < $field['minlength'])
+ return false;
+ if (!empty($field['maxlength']) && strlen($_POST["{$field['name']}"]) > $field['maxlength'])
+ return false;
+
+ return true;
+ }
+
+ public function process() {
+ if (!isset($_POST['sent'])) {
+ $this->formOutput();
+ } elseif ($this->formComplete()) {
+ $this->success();
+ } else {
+ $this->formOutput(true);
+ }
+ }
+
+}
+
+if (isset($edit) && $edit) {
+ echo "" . mi18n("Formularkonfiguration") . "
";
+ echo "" . mi18n("Hier ist das Formular sowie der Text einzugeben, der zusammen mit dem Formular ausgegeben werden soll:") . "
";
+ echo "CMS_HTML[0]";
+ echo "" . mi18n("Hier ist die Ausgabe einzugeben, die erscheint, wenn das Formular erfolgreich prozessiert worden ist:") . "
";
+ echo "CMS_HTML[1]";
+} else {
+ $form = new w3form();
+ $form->addEmailAdress("CMS_VALUE[0]");
+ $form->setEmailSubject("CMS_VALUE[1]");
+ $form->setEmailFrom("CMS_VALUE[2]", "CMS_VALUE[3]");
+ $form->setBackgroundError("CMS_VALUE[4]");
+ $form->setForm("CMS_HTML[0]");
+ $form->setAnswer("CMS_HTML[1]");
+ $form->process();
+}
+
+?>