updates for V1.0.0

Dieser Commit ist enthalten in:
o.pinke 2025-07-28 09:44:27 +02:00
Ursprung 381994a727
Commit cb6d0140a7
3 geänderte Dateien mit 162 neuen und 515 gelöschten Zeilen

Datei anzeigen

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<modulepackage><package_guid/>
<package_data/>
<module><name>CL Contactform</name>
<module><name>CL Contact Form</name>
<description>&lt;Ihre Modulbeschreibung&gt;
Autor:
@ -9,8 +9,9 @@ Version:</description>
<type>Content</type>
<input>?&gt;&lt;?php
/**
* Module cl-contactform input
* Module cl-contact_form input
*
* @package module/cl_contact_form
* @author Ortwin Pinke &lt;info@php-backoffice.de&gt;
*
* based on w3concepts.form.v1 from Andreas Kummer (2004-08-20)
@ -18,47 +19,67 @@ Version:</description>
*/
cInclude(&#039;frontend&#039;, &#039;includes/class.input.helper.php&#039;);
$oCfgTable = new UI_Config_Table();
$uiConfigTable = new UI_Config_Table();
$oField = new cHTMLTextbox(&quot;CMS_VAR[0]&quot;, &quot;CMS_VALUE[0]&quot;);
$oField-&gt;setWidth(30);
$oCfgTable-&gt;setCell(0, 0, mi18n(&quot;Zieladresse (alias@mydomain.com):&quot;));
$oCfgTable-&gt;setCell(0, 1, $oField-&gt;render());
$htmlField = new cHTMLSelectElement(&quot;CMS_VAR[10]&quot;, 200);
$htmlField-&gt;autoFill([
&#039;null&#039; =&gt; mi18n(&quot;Bitte wählen&quot;),
&#039;mail&#039; =&gt; mi18n(&quot;Mail (PHP)&quot;),
&#039;sendmail&#039; =&gt; mi18n(&quot;Sendmail&quot;),
&#039;smtp&#039; =&gt; mi18n(&quot;SMTP&quot;),
&#039;smtp_auth&#039; =&gt; mi18n(&quot;SMTP mit oAuth&quot;)
]);
$htmlField-&gt;setDefault(&quot;CMS_VALUE[10]&quot;);
$uiConfigTable-&gt;setRowCell(0, mi18n(&quot;Versand mit:&quot;));
$uiConfigTable-&gt;setRowCell(1, $htmlField-&gt;render());
$uiConfigTable-&gt;nextRow();
$oField = new cHTMLTextbox(&quot;CMS_VAR[1]&quot;, &quot;CMS_VALUE[1]&quot;);
$oField-&gt;setWidth(30);
$oCfgTable-&gt;setCell(1, 0, mi18n(&quot;Betreff:&quot;));
$oCfgTable-&gt;setCell(1, 1, $oField-&gt;render());
$htmlField = new cHTMLTextbox(&quot;CMS_VAR[0]&quot;, &quot;CMS_VALUE[0]&quot;);
$htmlField-&gt;setWidth(30);
$uiConfigTable-&gt;setRowCell(0, mi18n(&quot;Zieladresse (alias@mydomain.com):&quot;));
$uiConfigTable-&gt;setRowCell(1, $htmlField-&gt;render());
$uiConfigTable-&gt;nextRow();
$oField = new cHTMLTextbox(&quot;CMS_VAR[2]&quot;, &quot;CMS_VALUE[2]&quot;);
$oField-&gt;setWidth(30);
$oCfgTable-&gt;setCell(2, 0, mi18n(&quot;Antwortadresse (alias@mydomain.com):&quot;));
$oCfgTable-&gt;setCell(2, 1, $oField-&gt;render());
$htmlField = new cHTMLTextbox(&quot;CMS_VAR[1]&quot;, &quot;CMS_VALUE[1]&quot;);
$htmlField-&gt;setWidth(30);
$uiConfigTable-&gt;setRowCell(0, mi18n(&quot;Betreff:&quot;));
$uiConfigTable-&gt;setRowCell(1, $htmlField-&gt;render());
$uiConfigTable-&gt;nextRow();
$oField = new cHTMLTextbox(&quot;CMS_VAR[3]&quot;, &quot;CMS_VALUE[3]&quot;);
$oField-&gt;setWidth(30);
$oCfgTable-&gt;setCell(3, 0, mi18n(&quot;Emailname (z.B. Vorname Name):&quot;));
$oCfgTable-&gt;setCell(3, 1, $oField-&gt;render());
$htmlField = new cHTMLTextbox(&quot;CMS_VAR[2]&quot;, &quot;CMS_VALUE[2]&quot;);
$htmlField-&gt;setWidth(30);
$uiConfigTable-&gt;setRowCell(0, mi18n(&quot;Antwortadresse (alias@mydomain.com):&quot;));
$uiConfigTable-&gt;setRowCell(1, $htmlField-&gt;render());
$uiConfigTable-&gt;nextRow();
$oField = new cHTMLTextbox(&quot;CMS_VAR[4]&quot;, &quot;CMS_VALUE[4]&quot;);
$oField-&gt;setWidth(8);
$oCfgTable-&gt;setCell(4, 0, mi18n(&quot;Hintergrundfarbe bei Fehlern (z.B. red):&quot;));
$oCfgTable-&gt;setCell(4, 1, $oField-&gt;render());
$oCfgTable-&gt;render(true);
$htmlField = new cHTMLTextbox(&quot;CMS_VAR[3]&quot;, &quot;CMS_VALUE[3]&quot;);
$htmlField-&gt;setWidth(30);
$uiConfigTable-&gt;setRowCell(0, mi18n(&quot;Emailname (z.B. Vorname Name):&quot;));
$uiConfigTable-&gt;setRowCell(1, $htmlField-&gt;render());
$uiConfigTable-&gt;nextRow();
$htmlField = new cHTMLTextbox(&quot;CMS_VAR[4]&quot;, &quot;CMS_VALUE[4]&quot;);
$htmlField-&gt;setWidth(8);
$uiConfigTable-&gt;setRowCell(0, mi18n(&quot;Hintergrundfarbe bei Fehlern (z.B. red):&quot;));
$uiConfigTable-&gt;setRowCell(1, $htmlField-&gt;render());
$uiConfigTable-&gt;nextRow();
$uiConfigTable-&gt;render(true);
?&gt;&lt;?php</input>
<output>&lt;?php
global $sess;
/**
* Module cl-contactform output
* Module cl-contact_form output
*
* @package module/cl_contact_form
* @author Ortwin Pinke &lt;info@php-backoffice.de&gt;
*
* based on w3concepts.form.v1 from Andreas Kummer (2004-08-20)
* 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())[&#039;path&#039;][&#039;frontend&#039;] . &#039;securimage&#039; . DIRECTORY_SEPARATOR;
$captchaInstalled = false;
if (is_readable($sFrontEndPath)) {
@ -68,14 +89,15 @@ if (is_readable($sFrontEndPath)) {
$captchaInstalled = true;
}
class w3form
class FormGenerator
{
public $emailAdresses;
private array $email = [&#039;adresses&#039; =&gt; &#039;&#039;, &#039;from&#039; =&gt; [&#039;name&#039; =&gt; &#039;&#039;, &#039;email&#039; =&gt; &#039;&#039;], &#039;message&#039; =&gt; &#039;&#039;, &#039;subject&#039; =&gt; &#039;&#039;];
private array $unraveled = [];
private array $form = [&#039;form&#039; =&gt; &#039;&#039;, &#039;answer&#039; =&gt; &#039;&#039;, &#039;colorError&#039; =&gt; &#039;&#039;];
public function __construct(private bool $captchaInstalled)
public function __construct(private bool $captchaInstalled, private cSession $cSession)
{
}
@ -85,18 +107,22 @@ class w3form
$this-&gt;unravel($this-&gt;suppress(&#039;sent&#039;));
$this-&gt;generateEmailMessage();
$oMailer = new PHPMailer();
$oMailer-&gt;CharSet = &quot;UTF-8&quot;;
$oMailer-&gt;AddAddress($this-&gt;email[&#039;adresses&#039;]);
$oMailer-&gt;From = $this-&gt;email[&#039;from&#039;][&#039;email&#039;];
$oMailer-&gt;FromName = $this-&gt;email[&#039;from&#039;][&#039;name&#039;];
$oMailer-&gt;Subject = $this-&gt;email[&#039;subject&#039;];
$oMailer-&gt;Body = $this-&gt;email[&#039;message&#039;];
$phpMailer = new \PHPMailer\PHPMailer\PHPMailer(true);
$phpMailer-&gt;isMail();
$phpMailer-&gt;isHTML(false);
$phpMailer-&gt;CharSet = &quot;UTF-8&quot;;
$phpMailer-&gt;AddAddress($this-&gt;email[&#039;adresses&#039;]);
$phpMailer-&gt;setFrom($this-&gt;email[&#039;from&#039;][&#039;email&#039;], $this-&gt;email[&#039;from&#039;][&#039;name&#039;]);
$phpMailer-&gt;Subject = $this-&gt;email[&#039;subject&#039;];
$phpMailer-&gt;Body = $this-&gt;email[&#039;message&#039;];
if ($oMailer-&gt;send()) {
return true;
try {
if ($phpMailer-&gt;send()) {
return true;
}
} catch (\PHPMailer\PHPMailer\Exception $e) {
echo $e-&gt;errorMessage();
}
return false;
}
@ -113,7 +139,7 @@ class w3form
private function add2Message($key, $value): void
{
if (strlen($key) &gt; 25 or strlen($value) &gt; 54) {
if (strlen($key) &gt; 25 || strlen($value) &gt; 54) {
$this-&gt;email[&#039;message&#039;] .= &quot;$key\n$value\n&quot;;
} else {
$this-&gt;email[&#039;message&#039;] .= $key;
@ -124,18 +150,16 @@ class w3form
private function generateEmailMessage(): void
{
if ($this-&gt;unraveled)
foreach ($this-&gt;unraveled as $key =&gt; $value) {
$this-&gt;add2Message($key, $value);
}
foreach ($this-&gt;unraveled as $key =&gt; $value) {
$this-&gt;add2Message($key, $value);
}
}
private function suppress(): array
private function suppress(...$suppress): array
{
$fields = [];
$suppress = func_get_args();
foreach ($_POST as $key =&gt; $value) {
if (array_search($key, $suppress) === false)
if (!in_array($key, $suppress))
$fields[$key] = $value;
}
return $fields;
@ -180,8 +204,9 @@ class w3form
{
$fields = explode(&#039;###&#039;, $form);
$field = [];
$fieldsCount = count($fields);
for ($i = 1; $i &lt; count($fields); $i = $i + 2) {
for ($i = 1; $i &lt; $fieldsCount; $i += 2) {
$attribute = explode(&#039;;&#039;, trim($fields[$i]));
foreach ($attribute as $attribute) {
$nameValue = explode(&#039;:&#039;, trim($attribute));
@ -198,7 +223,8 @@ class w3form
public function formOutput($sent = false): void
{
echo &#039;&lt;div class=&quot;textItem secondItem&quot;&gt;&lt;form action=&quot;&quot; method=&quot;POST&quot; class=&quot;form-horizontal&quot;&gt;&#039;;
$form_action = $this-&gt;cSession-&gt;url(&#039;front_content.php?idcat=&#039; . cRegistry::getCategoryId() . &#039;&amp;idart=&#039; . cRegistry::getArticleId());
echo &#039;&lt;form action=&quot;&#039; . $form_action . &#039;&quot; method=&quot;post&quot; class=&quot;form-horizontal&quot;&gt;&#039;;
echo &#039;&lt;input type=&quot;hidden&quot; name=&quot;sent&quot; value=&quot;true&quot; /&gt;&#039;;
$form = $this-&gt;form[&#039;form&#039;];
$formData = $this-&gt;formInterpretation($form);
@ -211,45 +237,60 @@ class w3form
echo $item;
}
}
echo &#039;&lt;/form&gt;&lt;/div&gt;&#039;;
echo &#039;&lt;/form&gt;&#039;;
}
public function formField($attribute, $sent): void
{
$style = &#039;&#039;;
$value = &#039;&#039;;
$parameter = &quot;name=\&quot;{$attribute[&#039;name&#039;]}\&quot;&quot;;
if ($sent &amp;&amp; !$this-&gt;formFieldCorrect($attribute))
$style = &quot;style=\&quot;background-color:{$this-&gt;form[&#039;colorError&#039;]};\&quot;&quot;;
switch ($attribute[&#039;type&#039;]) {
case &#039;select&#039;:
case &#039;password&#039;:
case &#039;text&#039;:
if (!empty($attribute[&#039;size&#039;]))
$parameter .= &quot; size=\&quot;{$attribute[&#039;size&#039;]}\&quot;&quot;;
break;
$parameter = empty($attribute[&#039;id&#039;]) ? &#039;id=&quot;&#039; . $attribute[&#039;name&#039;] . &#039;&quot;&#039; : &#039;id=&quot;&#039; . $attribute[&#039;id&#039;] . &#039;&quot;&#039;;
$parameter .= &#039; name=&quot;&#039; . $attribute[&#039;name&#039;] . &#039;&quot;&#039;;
if ($sent &amp;&amp; !$this-&gt;formFieldCorrect($attribute)) {
$style = &#039;style=&quot;background-color: &#039; . $this-&gt;form[&#039;colorError&#039;] . &#039;;&quot;&#039;;
}
if (!empty($attribute[&#039;class&#039;])) {
$parameter .= &#039; class=&quot;&#039; . $attribute[&#039;class&#039;] . &#039;&quot;&#039;;
}
if (!empty($attribute[&#039;placeholder&#039;])) {
$parameter .= &#039; placeholder=&quot;&#039; . $attribute[&#039;placeholder&#039;] . &#039;&quot;&#039;;
}
switch ($attribute[&#039;type&#039;]) {
case &#039;textarea&#039;:
case &#039;text&#039;:
if (!empty($attribute[&#039;size&#039;]))
$parameter .= &quot; size=\&quot;{$attribute[&#039;size&#039;]}\&quot;&quot;;
if (!empty($attribute[&#039;value&#039;]))
if (!empty($attribute[&#039;size&#039;])) {
$parameter .= &#039; size=&quot;&#039; . $attribute[&#039;size&#039;] . &#039;&quot;&#039;;
}
if (!empty($attribute[&#039;value&#039;])) {
$value = $attribute[&#039;value&#039;];
if (!empty($_POST[&quot;{$attribute[&#039;name&#039;]}&quot;]))
}
if (!empty($_POST[&quot;{$attribute[&#039;name&#039;]}&quot;])) {
$value = $_POST[&quot;{$attribute[&#039;name&#039;]}&quot;];
}
break;
case &#039;select&#039;:
case &#039;password&#039;:
if (!empty($attribute[&#039;size&#039;])) {
$parameter .= &#039; size=&quot;&#039; . $attribute[&#039;size&#039;] . &#039;&quot;&#039;;
}
break;
}
if (isset($attribute[&#039;required&#039;]) || isset($attribute[&#039;mandantory&#039;])) {
$parameter .= &#039; required&#039;;
}
switch ($attribute[&#039;type&#039;]) {
case &#039;captcha&#039;:
if ($this-&gt;captchaInstalled) {
if ($sent) {
$captcha = @$_POST[&#039;ct_captcha&#039;];
$capId = @$_POST[&#039;captcha_id&#039;];
$captcha = @$_POST[&#039;lets_check&#039;];
$securimage = new Securimage();
if (!$securimage-&gt;check($captcha)) {
@ -260,9 +301,10 @@ class w3form
}
// show captcha HTML using Securimage::getCaptchaHtml()
$options = [];
$options[&#039;input_name&#039;] = &#039;ct_captcha&#039;; // change name of input element for form post input_text
$options[&#039;show_audio_button&#039;] = false;
$options[&#039;input_name&#039;] = &#039;lets_check&#039;; // change name of input element for form post input_text
$options[&#039;input_text&#039;] = mi18n(&quot;Zeichen eingeben&quot;);
$options[&#039;input_required&#039;] = false;
$options[&#039;input_required&#039;] = true;
if (!empty($_SESSION[&#039;ctform&#039;][&#039;captcha_error&#039;])) {
// error html to show in captcha output
@ -272,13 +314,13 @@ class w3form
echo &quot;&lt;div id=&#039;captcha_container_1&#039;&gt;\n&quot;;
echo Securimage::getCaptchaHtml($options);
echo &quot;\n&lt;/div&gt;\n&quot;;
echo &#039;&lt;script src=&quot;securimage/securimage.js&quot;&gt;&lt;/script&gt;&#039;;
}
break;
case &#039;text&#039;:
echo &quot;&lt;input type=\&quot;text\&quot; $parameter value=\&quot;$value\&quot; $style /&gt;&quot;;
break;
case &#039;email&#039;:
case &#039;password&#039;:
echo &quot;&lt;input type=\&quot;password\&quot; $parameter value=\&quot;$value\&quot; $style /&gt;&quot;;
echo &#039;&lt;input type=&quot;&#039;.$attribute[&#039;type&#039;].&#039;&quot; &#039;.$parameter.&#039; value=&quot;&#039;.$value.&#039;&quot; &#039;.$style.&#039; /&gt;&#039;;
break;
case &#039;textarea&#039;:
echo &quot;&lt;textarea name=\&quot;{$attribute[&#039;name&#039;]}\&quot; cols=\&quot;&quot;;
@ -289,27 +331,22 @@ class w3form
break;
case &#039;select&#039;:
echo &quot;&lt;select $parameter $style&gt;&quot;;
for ($i = 0; $i &lt; (is_countable($attribute[&#039;option&#039;]) ? count($attribute[&#039;option&#039;]) : 0); $i++) {
$itemsCount = is_countable($attribute[&#039;option&#039;]) ? count($attribute[&#039;option&#039;]) : 0;
for ($i = 0; $i &lt; (is_countable($attribute[&#039;option&#039;]) ? $itemsCount : 0); $i++) {
if (!empty($attribute[&#039;optionvalue&#039;][$i])) {
if (!empty($_POST[&quot;{$attribute[&#039;name&#039;]}&quot;]) &amp;&amp; $_POST[&quot;{$attribute[&#039;name&#039;]}&quot;] == $attribute[&#039;optionvalue&#039;][$i]) {
echo &quot;&lt;option value=\&quot;{$attribute[&#039;optionvalue&#039;][$i]}\&quot; selected=\&quot;selected\&quot;&gt;{$attribute[&#039;option&#039;][$i]}&lt;/option&gt;\n&quot;;
} elseif (empty($_POST[&quot;{$attribute[&#039;name&#039;]}&quot;]) &amp;&amp; !empty($attribute[&#039;optionvalue&#039;][$i]) &amp;&amp; $attribute[&#039;optionvalue&#039;][$i] == $attribute[&#039;value&#039;]) {
echo &quot;&lt;option value=\&quot;{$attribute[&#039;optionvalue&#039;][$i]}\&quot; selected=\&quot;selected\&quot;&gt;{$attribute[&#039;option&#039;][$i]}&lt;/option&gt;\n&quot;;
} else {
if (empty($_POST[&quot;{$attribute[&#039;name&#039;]}&quot;]) &amp;&amp; !empty($attribute[&#039;optionvalue&#039;][$i]) &amp;&amp; $attribute[&#039;optionvalue&#039;][$i] == $attribute[&#039;value&#039;]) {
echo &quot;&lt;option value=\&quot;{$attribute[&#039;optionvalue&#039;][$i]}\&quot; selected=\&quot;selected\&quot;&gt;{$attribute[&#039;option&#039;][$i]}&lt;/option&gt;\n&quot;;
} else {
echo &quot;&lt;option value=\&quot;{$attribute[&#039;optionvalue&#039;][$i]}\&quot;&gt;{$attribute[&#039;option&#039;][$i]}&lt;/option&gt;\n&quot;;
}
echo &quot;&lt;option value=\&quot;{$attribute[&#039;optionvalue&#039;][$i]}\&quot;&gt;{$attribute[&#039;option&#039;][$i]}&lt;/option&gt;\n&quot;;
}
} elseif (!empty($_POST[&quot;{$attribute[&#039;name&#039;]}&quot;]) &amp;&amp; $_POST[&quot;{$attribute[&#039;name&#039;]}&quot;] == $attribute[&#039;option&#039;][$i]) {
echo &quot;&lt;option selected=\&quot;selected\&quot;&gt;{$attribute[&#039;option&#039;][$i]}&lt;/option&gt;\n&quot;;
} elseif (empty($_POST[&quot;{$attribute[&#039;name&#039;]}&quot;]) &amp;&amp; $attribute[&#039;option&#039;][$i] == $attribute[&#039;value&#039;]) {
echo &quot;&lt;option selected=\&quot;selected\&quot;&gt;{$attribute[&#039;option&#039;][$i]}&lt;/option&gt;\n&quot;;
} else {
if (!empty($_POST[&quot;{$attribute[&#039;name&#039;]}&quot;]) &amp;&amp; $_POST[&quot;{$attribute[&#039;name&#039;]}&quot;] == $attribute[&#039;option&#039;][$i]) {
echo &quot;&lt;option selected=\&quot;selected\&quot;&gt;{$attribute[&#039;option&#039;][$i]}&lt;/option&gt;\n&quot;;
} else {
if (empty($_POST[&quot;{$attribute[&#039;name&#039;]}&quot;]) &amp;&amp; $attribute[&#039;option&#039;][$i] == $attribute[&#039;value&#039;]) {
echo &quot;&lt;option selected=\&quot;selected\&quot;&gt;{$attribute[&#039;option&#039;][$i]}&lt;/option&gt;\n&quot;;
} else {
echo &quot;&lt;option&gt;{$attribute[&#039;option&#039;][$i]}&lt;/option&gt;\n&quot;;
}
}
echo &quot;&lt;option&gt;{$attribute[&#039;option&#039;][$i]}&lt;/option&gt;\n&quot;;
}
}
echo &quot;&lt;/select&gt;&quot;;
@ -322,12 +359,10 @@ class w3form
} else {
echo &quot;&lt;label $style&gt;&lt;input type=\&quot;checkbox\&quot; $parameter value=\&quot;{$attribute[&#039;value&#039;]}\&quot;/&gt;&lt;/label&gt;&quot;;
}
} elseif (!empty($attribute[&#039;selected&#039;]) &amp;&amp; $attribute[&#039;selected&#039;] == &#039;true&#039;) {
echo &quot;&lt;input type=\&quot;checkbox\&quot; $parameter value=\&quot;{$attribute[&#039;value&#039;]}\&quot; checked=\&quot;checked\&quot;/&gt;&quot;;
} else {
if (!empty($attribute[&#039;selected&#039;]) &amp;&amp; $attribute[&#039;selected&#039;] == &#039;true&#039;) {
echo &quot;&lt;input type=\&quot;checkbox\&quot; $parameter value=\&quot;{$attribute[&#039;value&#039;]}\&quot; checked=\&quot;checked\&quot;/&gt;&quot;;
} else {
echo &quot;&lt;input type=\&quot;checkbox\&quot; $parameter value=\&quot;{$attribute[&#039;value&#039;]}\&quot;/&gt;&quot;;
}
echo &quot;&lt;input type=\&quot;checkbox\&quot; $parameter value=\&quot;{$attribute[&#039;value&#039;]}\&quot;/&gt;&quot;;
}
break;
case &#039;radio&#039;:
@ -337,12 +372,10 @@ class w3form
} else {
echo &quot;&lt;input type=\&quot;radio\&quot; $parameter value=\&quot;{$attribute[&#039;value&#039;]}\&quot; /&gt;&quot;;
}
} elseif (!empty($attribute[&#039;selected&#039;]) &amp;&amp; $attribute[&#039;selected&#039;] == &#039;true&#039;) {
echo &quot;&lt;input type=\&quot;radio\&quot; $parameter value=\&quot;{$attribute[&#039;value&#039;]}\&quot; checked=\&quot;checked\&quot;/&gt;&quot;;
} else {
if (!empty($attribute[&#039;selected&#039;]) &amp;&amp; $attribute[&#039;selected&#039;] == &#039;true&#039;) {
echo &quot;&lt;input type=\&quot;radio\&quot; $parameter value=\&quot;{$attribute[&#039;value&#039;]}\&quot; checked=\&quot;checked\&quot;/&gt;&quot;;
} else {
echo &quot;&lt;input type=\&quot;radio\&quot; $parameter value=\&quot;{$attribute[&#039;value&#039;]}\&quot;/&gt;&quot;;
}
echo &quot;&lt;input type=\&quot;radio\&quot; $parameter value=\&quot;{$attribute[&#039;value&#039;]}\&quot;/&gt;&quot;;
}
break;
}
@ -356,7 +389,7 @@ class w3form
switch ($field[&#039;type&#039;]) {
case &#039;captcha&#039;:
if ($this-&gt;captchaInstalled) {
$captcha = @$_POST[&#039;ct_captcha&#039;];
$captcha = @$_POST[&#039;lets_check&#039;];
$capId = @$_POST[&#039;captcha_id&#039;];
$securimage = new Securimage();
if (!$securimage-&gt;check($captcha, $capId, true)) {
@ -377,7 +410,13 @@ class w3form
private function success(): void
{
if ($this-&gt;sendEmail()) {
echo $this-&gt;form[&#039;answer&#039;];
$answer = trim($this-&gt;form[&#039;answer&#039;]);
if (mb_strlen($answer) &gt; 0) {
echo $this-&gt;form[&#039;answer&#039;];
} else {
echo &#039;&lt;span style=&quot;color:green;&quot;&gt;&#039; . mi18n(&quot;Form has been successfully send.&quot;) . &#039;&lt;/span&gt;&#039;;
}
} else {
echo &#039;&lt;span style=&quot;color:red;&quot;&gt;&#039; . mi18n(&quot;Es ist ein Fehler aufgetreten!&lt;br&gt;Bitte versuchen Sie es später noch einmal.&quot;) . &#039;&lt;/span&gt;&#039;;
}
@ -389,10 +428,8 @@ class w3form
$tmp_name = rtrim($field[&#039;name&#039;], &#039;[0]&#039;);
preg_match(&#039;/\[(\d*)\]/&#039;, $field[&#039;name&#039;], $matches);
$bEmptyPost = false;
$bIsPostArray = false;
$sPostFieldValue = $_POST[$tmp_name];
if (is_array($_POST[$tmp_name])) {
$bIsPostArray == true;
$sPostFieldValue = $_POST[$tmp_name][$matches[1]];
if (empty($_POST[$tmp_name][$matches[1]])) {
$bEmptyPost = true;
@ -465,10 +502,7 @@ class w3form
// längenbereich bei allen typen prüfen
if (!empty($field[&#039;minlength&#039;]) &amp;&amp; strlen($sPostFieldValue) &lt; $field[&#039;minlength&#039;])
return false;
if (!empty($field[&#039;maxlength&#039;]) &amp;&amp; strlen($sPostFieldValue) &gt; $field[&#039;maxlength&#039;])
return false;
return true;
return !(!empty($field[&#039;maxlength&#039;]) &amp;&amp; strlen($sPostFieldValue) &gt; $field[&#039;maxlength&#039;]);
}
public function process(): void
@ -484,23 +518,27 @@ class w3form
}
if (isset($edit) &amp;&amp; $edit) {
echo &quot;&lt;h1&gt;&quot; . mi18n(&quot;Formularkonfiguration&quot;) . &quot;&lt;/h1&gt;&quot;;
echo &quot;&lt;p&gt;&quot; . mi18n(&quot;Hier ist das Formular sowie der Text einzugeben, der zusammen mit dem Formular ausgegeben werden soll:&quot;) . &quot;&lt;/p&gt;&quot;;
echo &quot;CMS_HTML[0]&quot;;
echo &quot;&lt;p&gt;&quot; . mi18n(&quot;Hier ist die Ausgabe einzugeben, die erscheint, wenn das Formular erfolgreich prozessiert worden ist:&quot;) . &quot;&lt;/p&gt;&quot;;
echo &quot;CMS_HTML[1]&quot;;
if (cRegistry::isBackendEditMode()) {
echo &quot;&lt;hr&gt;&quot;;
echo &quot;&lt;h3&gt;&quot; . mi18n(&quot;Formularkonfiguration&quot;) . &quot;&lt;/h3&gt;&quot;;
echo &quot;&lt;h4&gt;&quot; . mi18n(&quot;Hier ist das Formular sowie der Text einzugeben, der zusammen mit dem Formular ausgegeben werden soll:&quot;) . &quot;&lt;/h4&gt;&quot;;
echo &quot;CMS_HTML[100]&quot;;
echo &quot;&lt;h4&gt;&quot; . mi18n(&quot;Hier ist die Ausgabe einzugeben, die erscheint, wenn das Formular erfolgreich verschickt wurde:&quot;) . &quot;&lt;/h4&gt;&quot;;
echo &quot;CMS_HTML[101]&quot;;
echo &quot;&lt;hr&gt;&quot;;
} else {
$form = new w3form($captchaInstalled);
$form = new FormGenerator($captchaInstalled, $sess);
$form-&gt;addEmailAdress(&quot;CMS_VALUE[0]&quot;);
$form-&gt;setEmailSubject(&quot;CMS_VALUE[1]&quot;);
$form-&gt;setEmailFrom(&quot;CMS_VALUE[2]&quot;, &quot;CMS_VALUE[3]&quot;);
$form-&gt;setBackgroundError(&quot;CMS_VALUE[4]&quot;);
$form-&gt;setForm(&quot;CMS_HTML[0]&quot;);
$form-&gt;setAnswer(&quot;CMS_HTML[1]&quot;);
$form-&gt;setForm(&quot;CMS_HTML[100]&quot;);
$form-&gt;setAnswer(&quot;CMS_HTML[101]&quot;);
$form-&gt;process();
}
?&gt;</output>
?&gt;
</output>
</module>
<jsfiles/>
<tplfiles/>

Datei anzeigen

@ -1,398 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<modulepackage><package_guid/>
<package_data>a:5:{s:7:"jsfiles";a:0:{}s:8:"tplfiles";a:0:{}s:8:"cssfiles";a:0:{}s:7:"layouts";a:0:{}s:12:"translations";a:0:{}}</package_data>
<module><name>KontaktForm_Valid</name>
<description>&lt;Ihre Modulbeschreibung&gt;
Autor:
Version</description>
<type/>
<input>?&gt;&lt;?php
/**************************************************
* CONTENIDO MODULE - INPUT
*
* Modulname : w3concepts.form.v1
* Author : Andreas Kummer
* Copyright : mumprecht &amp; kummer w3concepts
* Created : 20-08-2004
* Modified : 20-08-2004
* Modified : 24-08-2013, Murat Purc, adapted to newer CONTENIDO (4.8) version
*************************************************/
echo &quot;
&lt;table cellspacing='0' cellpadding='10' border='0'&gt;
&lt;tr&gt;
&lt;td&gt;&quot; . mi18n(&quot;Zieladresse (alias@mydomain.com):&quot;) . &quot;&lt;/td&gt;
&lt;td&gt;&lt;input type='text' name=\&quot;CMS_VAR[0]\&quot; value=\&quot;CMS_VALUE[0]\&quot; size='30' /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot; . mi18n(&quot;Betreff:&quot;) . &quot;&lt;/td&gt;
&lt;td&gt;&lt;input type='text' name=\&quot;CMS_VAR[1]\&quot; value=\&quot;CMS_VALUE[1]\&quot; size='30' /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot; . mi18n(&quot;Antwortadresse (alias@mydomain.com):&quot;) . &quot;&lt;/td&gt;
&lt;td&gt;&lt;input type='text' name=\&quot;CMS_VAR[2]\&quot; value=\&quot;CMS_VALUE[2]\&quot; size='30' /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot; . mi18n(&quot;Emailname (z.B. Vorname Name):&quot;) . &quot;&lt;/td&gt;
&lt;td&gt;&lt;input type='text' name=\&quot;CMS_VAR[3]\&quot; value=\&quot;CMS_VALUE[3]\&quot; size='30' /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&quot; . mi18n(&quot;Hintergrundfarbe bei Fehlern (z.B. red):&quot;) . &quot;&lt;/td&gt;
&lt;td&gt;&lt;input type='text' name=\&quot;CMS_VAR[4]\&quot; value=\&quot;CMS_VALUE[4]\&quot; size='30' /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&quot;;
</input>
<output>&lt;?php
/**************************************************
* CONTENIDO MODULE - OUTPUT
*
* Modulname : w3concepts.form.v1
* Author : Andreas Kummer
* Copyright : mumprecht &amp; kummer w3concepts
* Created : 20-08-2004
* Modified : 20-08-2004
* Modified : 24-08-2013, Murat Purc, adapted to newer CONTENIDO (4.8) and PHP (5.3/5.4) versions
*************************************************/
class w3form {
private $email;
private $unraveled = array();
private $form;
private $formField = array();
public function __construct() {
$this-&gt;email = array(
'adresses' =&gt; '',
'from' =&gt; array(
'name' =&gt; '',
'email' =&gt; ''
),
'message' =&gt; '',
'subject' =&gt; ''
);
$this-&gt;form = array(
'form' =&gt; '',
'answer' =&gt; '',
'colorError' =&gt; ''
);
}
private function sendEmail() {
$this-&gt;unravel($this-&gt;suppress('sent'));
$this-&gt;generateEmailMessage();
mail(
$this-&gt;email['adresses'],
$this-&gt;email['subject'],
$this-&gt;email['message'],
sprintf(
&quot;From: %s &lt;%s&gt;\nReply-To: %s\nX-Mailer: PHP/%s&quot;,
$this-&gt;email['from']['name'],
$this-&gt;email['from']['email'],
$this-&gt;email['from']['email'],
phpversion()
)
);
}
private function unravel($toUnravel, $prefix = '') {
foreach ($toUnravel as $key =&gt; $value) {
if (is_array($value)) {
$this-&gt;unravel($value, $key . ' ');
} else {
$this-&gt;unraveled[&quot;{$prefix}{$key}&quot;] = $value;
}
}
}
private function add2Message($key, $value) {
if (strlen($key) &gt; 25 OR strlen($value) &gt; 54) {
$this-&gt;email['message'] .= &quot;$key\n$value\n&quot;;
} else {
$this-&gt;email['message'] .= $key;
$this-&gt;email['message'] .= str_repeat(' ', 25 - strlen($key));
$this-&gt;email['message'] .= &quot;$value\n&quot;;
}
}
private function generateEmailMessage() {
if ($this-&gt;unraveled)
foreach ($this-&gt;unraveled as $key =&gt; $value) {
$this-&gt;add2Message($key, $value);
}
}
private function suppress() {
$suppress = func_get_args();
foreach ($_POST as $key =&gt; $value) {
if (array_search($key, $suppress) === false)
$fields[$key] = $value;
}
return $fields;
}
public function addEmailAdress($email) {
if (empty($this-&gt;emailAdresses)) {
$this-&gt;email['adresses'] .= &quot;$email&quot;;
} else {
$this-&gt;email['adresses'] .= &quot;, $email&quot;;
}
}
public function setEmailSubject($subject) {
$this-&gt;email['subject'] = $subject;
}
public function setEmailFrom($email, $name) {
$this-&gt;email['from']['email'] = $email;
$this-&gt;email['from']['name'] = $name;
}
public function setForm($form) {
$this-&gt;form['form'] = $form;
}
public function setAnswer($answer) {
$this-&gt;form['answer'] = $answer;
}
public function setBackgroundError($color) {
$this-&gt;form['colorError'] = $color;
}
public function formInterpretation(&amp;$form) {
$fields = explode('###', $form);
$field = array();
for ($i = 1; $i &lt; count($fields); $i = $i + 2) {
$attributte = explode(';', trim($fields[$i]));
foreach ($attributte as $attribute) {
$nameValue = explode(':', trim($attribute));
if ($nameValue[0] != 'option' &amp;&amp; $nameValue[0] != 'optionvalue') {
$field[&quot;{$fields[$i]}&quot;][&quot;{$nameValue[0]}&quot;] = $nameValue[1];
} else {
$field[&quot;{$fields[$i]}&quot;][&quot;{$nameValue[0]}&quot;][] = $nameValue[1];
}
}
}
return $field;
}
public function formOutput($sent = false) {
echo '&lt;div class=&quot;textItem secondItem&quot;&gt;&lt;form action=&quot;&quot; method=&quot;POST&quot; class=&quot;form-horizontal&quot;&gt;';
echo '&lt;input type=&quot;hidden&quot; name=&quot;sent&quot; value=&quot;true&quot; /&gt;';
$form = $this-&gt;form['form'];
$formData = $this-&gt;formInterpretation($form);
$form = explode('###', $form);
foreach ($form as $item) {
if (!empty($formData[&quot;{$item}&quot;])) {
$this-&gt;formField($formData[&quot;{$item}&quot;], $sent);
} else {
echo $item;
}
}
echo '&lt;/form&gt;&lt;/div&gt;';
}
public function formField($attribute, $sent) {
$parameter = &quot;name=\&quot;{$attribute['name']}\&quot;&quot;;
if ($sent &amp;&amp; !$this-&gt;formFieldCorrect($attribute))
$style = &quot;style=\&quot;background-color:{$this-&gt;form['colorError']};\&quot;&quot;;
switch ($attribute['type']) {
case 'select':
case 'password':
case 'text':
if (!empty($attribute['size']))
$parameter .= &quot; size=\&quot;{$attribute['size']}\&quot;&quot;;
break;
}
switch ($attribute['type']) {
case 'textarea':
case 'text':
if (!empty($attribute['size']))
$parameter .= &quot; size=\&quot;{$attribute['size']}\&quot;&quot;;
if (!empty($attribute['value']))
$value = $attribute['value'];
if (!empty($_POST[&quot;{$attribute['name']}&quot;]))
$value = $_POST[&quot;{$attribute['name']}&quot;];
break;
}
switch ($attribute['type']) {
case 'text':
echo &quot;&lt;input type=\&quot;text\&quot; $parameter value=\&quot;$value\&quot; $style /&gt;&quot;;
break;
case 'password':
echo &quot;&lt;input type=\&quot;password\&quot; $parameter value=\&quot;$value\&quot; $style /&gt;&quot;;
break;
case 'textarea':
echo &quot;&lt;textarea name=\&quot;{$attribute['name']}\&quot; cols=\&quot;&quot;;
echo (empty($attribute['cols'])) ? ('20') : ($attribute['cols']);
echo &quot;\&quot; rows=\&quot;&quot;;
echo (empty($attribute['rows'])) ? ('2') : ($attribute['rows']);
echo &quot;\&quot; wrap=\&quot;virtual\&quot; $style&gt;$value&lt;/textarea&gt;&quot;;
break;
case 'select':
echo &quot;&lt;select $parameter $style&gt;&quot;;
for ($i = 0; $i &lt; count($attribute['option']); $i++) {
if (!empty($attribute['optionvalue'][$i])) {
if (!empty($_POST[&quot;{$attribute['name']}&quot;]) &amp;&amp; $_POST[&quot;{$attribute['name']}&quot;] == $attribute['optionvalue'][$i]) {
echo &quot;&lt;option value=\&quot;{$attribute['optionvalue'][$i]}\&quot; selected=\&quot;selected\&quot;&gt;{$attribute['option'][$i]}&lt;/option&gt;\n&quot;;
} else {
if (empty($_POST[&quot;{$attribute['name']}&quot;]) &amp;&amp; !empty($attribute['optionvalue'][$i]) &amp;&amp; $attribute['optionvalue'][$i] == $attribute['value']) {
echo &quot;&lt;option value=\&quot;{$attribute['optionvalue'][$i]}\&quot; selected=\&quot;selected\&quot;&gt;{$attribute['option'][$i]}&lt;/option&gt;\n&quot;;
} else {
echo &quot;&lt;option value=\&quot;{$attribute['optionvalue'][$i]}\&quot;&gt;{$attribute['option'][$i]}&lt;/option&gt;\n&quot;;
}
}
} else {
if (!empty($_POST[&quot;{$attribute['name']}&quot;]) &amp;&amp; $_POST[&quot;{$attribute['name']}&quot;] == $attribute['option'][$i]) {
echo &quot;&lt;option selected=\&quot;selected\&quot;&gt;{$attribute['option'][$i]}&lt;/option&gt;\n&quot;;
} else {
if (empty($_POST[&quot;{$attribute['name']}&quot;]) &amp;&amp; $attribute['option'][$i] == $attribute['value']) {
echo &quot;&lt;option selected=\&quot;selected\&quot;&gt;{$attribute['option'][$i]}&lt;/option&gt;\n&quot;;
} else {
echo &quot;&lt;option&gt;{$attribute['option'][$i]}&lt;/option&gt;\n&quot;;
}
}
}
}
echo &quot;&lt;/select&gt;&quot;;
break;
case 'checkbox':
$formId = preg_split('[\[|\]]', $attribute['name']);
if ($sent) {
if ($_POST[&quot;{$formId[0]}&quot;][&quot;{$formId[1]}&quot;] == $attribute['value']) {
echo &quot;&lt;input type=\&quot;checkbox\&quot; $parameter value=\&quot;{$attribute['value']}\&quot; checked=\&quot;checked\&quot;/&gt;&quot;;
} else {
echo &quot;&lt;input type=\&quot;checkbox\&quot; $parameter value=\&quot;{$attribute['value']}\&quot;/&gt;&quot;;
}
} else {
if (!empty($attribute['selected']) &amp;&amp; $attribute['selected'] == 'true') {
echo &quot;&lt;input type=\&quot;checkbox\&quot; $parameter value=\&quot;{$attribute['value']}\&quot; checked=\&quot;checked\&quot;/&gt;&quot;;
} else {
echo &quot;&lt;input type=\&quot;checkbox\&quot; $parameter value=\&quot;{$attribute['value']}\&quot;/&gt;&quot;;
}
}
break;
case 'radio':
if (!empty($_POST[&quot;{$attribute['name']}&quot;])) {
if ($_POST[&quot;{$attribute['name']}&quot;] == $attribute['value']) {
echo &quot;&lt;input type=\&quot;radio\&quot; $parameter value=\&quot;{$attribute['value']}\&quot; checked=\&quot;checked\&quot;/&gt;&quot;;
} else {
echo &quot;&lt;input type=\&quot;radio\&quot; $parameter value=\&quot;{$attribute['value']}\&quot; /&gt;&quot;;
}
} else {
if (!empty($attribute['selected']) &amp;&amp; $attribute['selected'] == 'true') {
echo &quot;&lt;input type=\&quot;radio\&quot; $parameter value=\&quot;{$attribute['value']}\&quot; checked=\&quot;checked\&quot;/&gt;&quot;;
} else {
echo &quot;&lt;input type=\&quot;radio\&quot; $parameter value=\&quot;{$attribute['value']}\&quot;/&gt;&quot;;
}
}
break;
}
}
private function formComplete() {
$form = $this-&gt;form['form'];
$fields = $this-&gt;formInterpretation($form);
foreach ($fields as $field) {
if (!$this-&gt;formFieldCorrect($field)) {
return false;
}
}
return true;
}
private function success() {
$this-&gt;sendEmail();
echo $this-&gt;form['answer'];
}
private function formFieldCorrect(&amp;$field) {
// prüfung, ob pflichtfeld vorhanden
if (!empty($field['mandatory']) &amp;&amp; $field['mandatory'] == 'true' &amp;&amp; empty($_POST[&quot;{$field['name']}&quot;]))
return false;
// wenn das formularfeld kein pflichtfeld und nicht vorhanden ist, true zurück geben
if (empty($_POST[&quot;{$field['name']}&quot;]))
return true;
// regular expression prüfungen
if (!empty($field['valid']) &amp;&amp; $field['valid'] == 'simpletext' &amp;&amp; !preg_match(&quot;/^[öäüéàèâêîça-z-]*$/i&quot;, $_POST[&quot;{$field['name']}&quot;]))
return false;
if (!empty($field['valid']) &amp;&amp; $field['valid'] == 'text' &amp;&amp; !preg_match(&quot;/^[ .,;!?()öäüéàèâêîça-z-]*$/i&quot;, $_POST[&quot;{$field['name']}&quot;]))
return false;
if (!empty($field['valid']) &amp;&amp; $field['valid'] == 'integer' &amp;&amp; !preg_match(&quot;/^[0-9]*$/&quot;, $_POST[&quot;{$field['name']}&quot;]))
return false;
if (!empty($field['valid']) &amp;&amp; $field['valid'] == 'float' &amp;&amp; !preg_match(&quot;/^[0-9]*[.]{0,1}[0-9]*$/&quot;, $_POST[&quot;{$field['name']}&quot;]))
return false;
if (!empty($field['valid']) &amp;&amp; $field['valid'] == 'date' &amp;&amp; !preg_match(&quot;/^[0-9]{1,2}.[0-9]{1,2}.[0-9]{2}$/&quot;, $_POST[&quot;{$field['name']}&quot;]))
return false;
if (!empty($field['valid']) &amp;&amp; $field['valid'] == 'email' &amp;&amp; !preg_match(&quot;/^[öäüéàèâêîç_a-z0-9-]+(\.[öäüéàèâêîç_a-z0-9-]+)*@[öäüéàèâêîça-z0-9-]+(\.[öäüéàèâêîça-z0-9-]+)*$/i&quot;, $_POST[&quot;{$field['name']}&quot;]))
return false;
// grössenbereich bei integer und float prüfen
if (!empty($field['minvalue']) &amp;&amp; $_POST[&quot;{$field['name']}&quot;] &lt; $field['minvalue'])
return false;
if (!empty($field['maxvalue']) &amp;&amp; $_POST[&quot;{$field['name']}&quot;] &gt; $field['maxvalue'])
return false;
// längenbereich bei allen typen prüfen
if (!empty($field['minlength']) &amp;&amp; strlen($_POST[&quot;{$field['name']}&quot;]) &lt; $field['minlength'])
return false;
if (!empty($field['maxlength']) &amp;&amp; strlen($_POST[&quot;{$field['name']}&quot;]) &gt; $field['maxlength'])
return false;
return true;
}
public function process() {
if (!isset($_POST['sent'])) {
$this-&gt;formOutput();
} elseif ($this-&gt;formComplete()) {
$this-&gt;success();
} else {
$this-&gt;formOutput(true);
}
}
}
if (isset($edit) &amp;&amp; $edit) {
echo &quot;&lt;h1&gt;&quot; . mi18n(&quot;Formularkonfiguration&quot;) . &quot;&lt;/h1&gt;&quot;;
echo &quot;&lt;p&gt;&quot; . mi18n(&quot;Hier ist das Formular sowie der Text einzugeben, der zusammen mit dem Formular ausgegeben werden soll:&quot;) . &quot;&lt;/p&gt;&quot;;
echo &quot;CMS_HTML[0]&quot;;
echo &quot;&lt;p&gt;&quot; . mi18n(&quot;Hier ist die Ausgabe einzugeben, die erscheint, wenn das Formular erfolgreich prozessiert worden ist:&quot;) . &quot;&lt;/p&gt;&quot;;
echo &quot;CMS_HTML[1]&quot;;
} else {
$form = new w3form();
$form-&gt;addEmailAdress(&quot;CMS_VALUE[0]&quot;);
$form-&gt;setEmailSubject(&quot;CMS_VALUE[1]&quot;);
$form-&gt;setEmailFrom(&quot;CMS_VALUE[2]&quot;, &quot;CMS_VALUE[3]&quot;);
$form-&gt;setBackgroundError(&quot;CMS_VALUE[4]&quot;);
$form-&gt;setForm(&quot;CMS_HTML[0]&quot;);
$form-&gt;setAnswer(&quot;CMS_HTML[1]&quot;);
$form-&gt;process();
}
?&gt;
</output>
</module>
<jsfiles/>
<tplfiles/>
<cssfiles/>
<layouts/>
</modulepackage>