diff --git a/www/pages/content/ticket_create.tpl b/www/pages/content/ticket_create.tpl index 229d9342..63fc1163 100644 --- a/www/pages/content/ticket_create.tpl +++ b/www/pages/content/ticket_create.tpl @@ -1,141 +1,53 @@ - -
- - -
-
{|Nachricht|} - - - - - - - - - - - - - -
Von:
Kunde:
E-Mail:
E-Mail CC:
Betreff:
Nachricht:
Anhang 1:
Anhang 2:
Anhang 3:
Anhang 4:
Anhang 5:
 
-
-
- -Textvorlagen:
- +
+
    +
  • +
+
+ [MESSAGE] + + [FORMHANDLEREVENT] +
+
+
+
+
+ + + + + +
{|Betreff|}:
{|Projekt|}:
{|Adresse|}:
{|Tags|}:
+
+
+
+
+
+
+ + + + + +
{|Status|}:
{|Verantwortlich|}:
{|Prio|}:
{|Notiz|}:
+
+
+
+
+
+
+ + {|Aktionen|} + +
+
+
+
+
+
+ [NEW_MESSAGE] + + [MESSAGES] +
+
-
- - diff --git a/www/pages/content/ticket_edit.tpl b/www/pages/content/ticket_edit.tpl index 450776e4..2bf7f857 100644 --- a/www/pages/content/ticket_edit.tpl +++ b/www/pages/content/ticket_edit.tpl @@ -21,7 +21,7 @@ {|[STATUSICON]Ticket #[SCHLUESSEL]|} {|Betreff|}:[BETREFF] {|Zeit|}:[ZEIT] - {|Von|}:[KUNDE] <[MAILADRESSE]> + {|Von|}:[KUNDE] [MAILADRESSE] {|Projekt|}: {|Adresse|}: {|Tags|}: @@ -60,10 +60,4 @@ -
- - - -
- diff --git a/www/pages/content/ticket_edit_raw.tpl b/www/pages/content/ticket_edit_raw.tpl new file mode 100644 index 00000000..6391fe05 --- /dev/null +++ b/www/pages/content/ticket_edit_raw.tpl @@ -0,0 +1,119 @@ +
+ + +
+ [MESSAGE] +
+ [FORMHANDLEREVENT] +
+
+
+
+
+ {|ticket|}Info like this. + + + + + + + + + + + + + + + + + + + + + + + + + + +
{|Schluessel|}:
{|Zeit|}:
{|Projekt|}:
{|Bearbeiter|}:
{|Quelle|}:
{|Status|}:
{|Adresse|}:
{|Kunde|}:
{|Warteschlange|}:
{|Mailadresse|}:
{|Prio|}:
{|Betreff|}:
{|Zugewiesen|}:
{|Inbearbeitung|}:
{|Inbearbeitung_user|}:
{|Firma|}:
{|Notiz|}:
{|Bitteantworten|}:
{|Service|}:
{|Kommentar|}:
{|Privat|}:
{|Dsgvo|}:
{|Tags|}:
{|Nachrichten_anz|}:
+
+
+
+
+
+ + +
+
+ +
+ diff --git a/www/pages/content/ticket_new_message.tpl b/www/pages/content/ticket_new_message.tpl index 2549b85b..cb868614 100644 --- a/www/pages/content/ticket_new_message.tpl +++ b/www/pages/content/ticket_new_message.tpl @@ -9,10 +9,6 @@ - - - - @@ -21,10 +17,6 @@ - - - - @@ -53,6 +45,19 @@
Von:
An: CC:
BCC:

+ + + + + + + + +
@@ -61,11 +66,11 @@
- + [DATEIENBUTTON] - +
diff --git a/www/pages/ticket.php b/www/pages/ticket.php index 3cfa4f14..972fda6e 100644 --- a/www/pages/ticket.php +++ b/www/pages/ticket.php @@ -5,6 +5,7 @@ */ use Xentral\Components\Database\Exception\QueryFailureException; +use Xentral\Modules\Ticket\Task; class Ticket { @@ -15,7 +16,7 @@ class Ticket { $this->app->ActionHandlerInit($this); $this->app->ActionHandler("list", "ticket_list"); - $this->app->ActionHandler("create", "ticket_edit"); // This automatically adds a "New" button + $this->app->ActionHandler("create", "ticket_create"); // This automatically adds a "New" button $this->app->ActionHandler("edit", "ticket_edit"); $this->app->ActionHandler("edit_raw", "ticket_edit_raw"); $this->app->ActionHandler("delete", "ticket_delete"); @@ -109,8 +110,122 @@ class Ticket { $this->ticket_list(); } - function get_messages_of_ticket($ticket_id) { - return $this->app->DB->SelectArr("SELECT n.id, n.betreff, n.verfasser, n.mail, n.zeit, n.versendet, n.text FROM ticket_nachricht n INNER JOIN ticket t ON t.schluessel = n.ticket WHERE t.id = ".$ticket_id." ORDER BY n.zeit DESC"); + function get_messages_of_ticket($ticket_id, $where) { + return $this->app->DB->SelectArr("SELECT n.id, n.betreff, n.verfasser, n.mail, n.mail_cc, n.zeit, n.zeitausgang, n.versendet, n.text, n.verfasser_replyto, mail_replyto FROM ticket_nachricht n INNER JOIN ticket t ON t.schluessel = n.ticket WHERE (".$where.") AND t.id = ".$ticket_id." ORDER BY n.zeit DESC"); + } + + + /** + * @throws NumberGeneratorException + * + * @return string + */ + private function generateRandomTicketNumber(): string + { + $random = rand(300,700); + $loopCounter = 0; + while(true) { + $candidate = sprintf('%s%04d', date('Ymd'), $random++); + + if (!$this->app->DB->Select('SELECT id FROM ticket WHERE schluessel = '.$candidate)) { + return($candidate); + } + + if ($loopCounter > 99) { + throw new NumberGeneratorException('ticket number generation failed'); + } + $loopCounter++; + } + } + + function ticket_save_to_db($id, $input) { + // Write to database + + // Add checks here + if (empty($id)) { + // New item + $id = 'NULL'; + } + + $input['projekt'] = $this->app->erp->ReplaceProjekt(true,$input['projekt'],true); // Parameters: Target db?, value, from form? + $input['adresse'] = $this->app->erp->ReplaceAdresse(true,$input['adresse'],true); // Parameters: Target db?, value, from form? + $input['warteschlange'] = explode(" ",$input['warteschlange'])[0]; // Just the label + + $columns = "id, "; + $values = "$id, "; + $update = ""; + + $fix = ""; + + foreach ($input as $key => $value) { + + if ($this->app->DB->ColumnExists('ticket',$key)) { + $columns = $columns.$fix.$key; + $values = $values.$fix."'".$value."'"; + $update = $update.$fix.$key." = '$value'"; + $fix = ", "; + } + } + + $sql = "INSERT INTO ticket (".$columns.") VALUES (".$values.") ON DUPLICATE KEY UPDATE ".$update; + + $this->app->DB->Update($sql); + $id = $this->app->DB->GetInsertID(); + return($id); + } + + function save_draft($id, $input) { + $columns = "id, "; + $values = "$id, "; + $update = ""; + + $fix = ""; + + // Translate form to table + $input['betreff'] = $input['email_betreff']; + $input['mail'] = $input['email_an']; + $input['mail_cc'] = $input['email_cc']; + $input['text'] = $input['email_text']; + + foreach ($input as $key => $value) { + + if ($this->app->DB->ColumnExists('ticket_nachricht',$key)) { + $columns = $columns.$fix.$key; + $values = $values.$fix."'".$value."'"; + $update = $update.$fix.$key." = '$value'"; + $fix = ", "; + } + } + + $sql = "INSERT INTO ticket_nachricht (".$columns.") VALUES (".$values.") ON DUPLICATE KEY UPDATE ".$update; + + $this->app->DB->Update($sql); + } + + function ticket_create() { + + $submit = $this->app->Secure->GetPOST('submit'); + $input = $this->GetInput(); + + if ($submit != '') { + + $input['schluessel'] = $this->generateRandomTicketNumber(); + $input['zeit'] = date('Y-m-d H:i:s', time()); + $input['kunde'] = $this->app->User->GetName(); + + $id = $this->ticket_save_to_db($id, $input); + + header("Location: index.php?module=ticket&action=edit&id=$id"); + exit(); + } + + $this->app->Tpl->Set('STATUSICON', $this->ticket_status_icon('neu')." "); + $this->app->YUI->AutoComplete("adresse","adresse"); + $this->app->YUI->AutoComplete("projekt","projektname",1); + $this->app->YUI->AutoComplete("status","ticketstatus",1); + $this->app->Tpl->Set('STATUS', $this->app->erp->GetStatusTicketSelect('neu')); + $this->app->YUI->AutoComplete("warteschlange","warteschlangename"); + $this->app->Tpl->Parse('PAGE', "ticket_create.tpl"); } function ticket_edit() { @@ -123,51 +238,13 @@ class Ticket { $id = $this->app->Secure->GetGET('id'); $input = $this->GetInput(); $submit = $this->app->Secure->GetPOST('submit'); - $msg = $this->app->erp->base64_url_decode($this->app->Secure->GetGET('msg')); - - if (empty($id)) { - // New item - $id = 'NULL'; - } + $msg = $this->app->erp->base64_url_decode($this->app->Secure->GetGET('msg')); // Always save if ($submit != '') { - - // Write to database - - // Add checks here - - $input['projekt'] = $this->app->erp->ReplaceProjekt(true,$input['projekt'],true); // Parameters: Target db?, value, from form? - $input['adresse'] = $this->app->erp->ReplaceAdresse(true,$input['adresse'],true); // Parameters: Target db?, value, from form? - $input['warteschlange'] = explode(" ",$input['warteschlange'])[0]; // Just the label - - $columns = "id, "; - $values = "$id, "; - $update = ""; - - $fix = ""; - - foreach ($input as $key => $value) { - - if ($this->app->DB->ColumnExists('ticket',$key)) { - $columns = $columns.$fix.$key; - $values = $values.$fix."'".$value."'"; - $update = $update.$fix.$key." = '$value'"; - $fix = ", "; - } - } - - $sql = "INSERT INTO ticket (".$columns.") VALUES (".$values.") ON DUPLICATE KEY UPDATE ".$update; - - $this->app->DB->Update($sql); - - if ($id == 'NULL') { - $msg = $this->app->erp->base64_url_encode("
Das Element wurde erfolgreich angelegt.
"); - header("Location: index.php?module=ticket&action=list&msg=$msg"); - } else { - $msg = "
Die Einstellungen wurden erfolgreich übernommen.
"; - } + $this->ticket_save_to_db($id, $input); + $msg = "
Die Einstellungen wurden erfolgreich übernommen.
"; } // Load values again from database @@ -186,83 +263,138 @@ class Ticket { $this->app->Tpl->Set('STATUS', $this->app->erp->GetStatusTicketSelect($result[0]['status'])); $input['projekt'] = $this->app->erp->ReplaceProjekt(false,$input['projekt'],false); // Parameters: Target db?, value, from form? $this->app->YUI->AutoComplete("warteschlange","warteschlangename"); + // END Header - // Get messsages - $messages = $this->get_messages_of_ticket($id); + // Check for draft + $drafted_messages = $this->get_messages_of_ticket($id, "zeitausgang IS NULL"); + + if (!empty($drafted_messages)) { + + // Draft from form? + if ($submit != '') { + $this->save_draft($drafted_messages[0]['id'],$input); + // Reload + $drafted_messages = $this->get_messages_of_ticket($id, "zeitausgang IS NULL"); + } + + // Load the draft for editing + $this->app->Tpl->Set('EMAIL_AN', $drafted_messages[0]['mail']); + $this->app->Tpl->Set('EMAIL_CC', $drafted_messages[0]['mail_cc']); + $this->app->Tpl->Set('EMAIL_BCC', $drafted_messages[0]['mail_bcc']); + $this->app->Tpl->Set('EMAIL_BETREFF', $drafted_messages[0]['betreff']); + $this->app->Tpl->Set('EMAIL_TEXT',$drafted_messages[0]['text']); + + // Show new message dialog + $this->app->Tpl->Set('EMAIL_SENDER', $this->app->erp->GetSelectEmailMitName($dokument['von'])); + $this->app->YUI->AutoComplete("email_an","emailname"); + $this->app->YUI->AutoComplete("email_cc","emailname"); + $this->app->YUI->AutoComplete("email_bcc","emailname"); + $this->app->YUI->CkEditor("email_text","internal", null, 'JQUERY'); + $this->app->Tpl->Parse('NEW_MESSAGE', "ticket_new_message.tpl"); + } + + // END Draft + + // Get all messsages + $messages = $this->get_messages_of_ticket($id, 1); switch ($submit) { case 'neue_email': - // Show new message dialog? - $msg = ""; // Suppress save message - $recv_messages = $this->app->DB->SelectArr("SELECT n.betreff, n.verfasser, n.mail, n.zeit, n.versendet, n.text FROM ticket_nachricht n INNER JOIN ticket t ON t.schluessel = n.ticket WHERE t.id = ".$id." AND n.versendet != 1 ORDER BY n.zeit DESC"); - $this->app->Tpl->Set('EMAIL_AN', $recv_messages[0]['mail']); + if (empty($drafted_messages)) { + // Create new message and save it for editing + $recv_messages = $this->get_messages_of_ticket($id,"n.versendet != 1"); + $this->app->Tpl->Set('EMAIL_AN', $recv_messages[0]['mail']); - if (!str_starts_with(strtoupper($recv_messages[0]['betreff']),"RE:")) { - $this->app->Tpl->Set('EMAIL_BETREFF', "RE: ".$recv_messages[0]['betreff']); - } else { - $this->app->Tpl->Set('EMAIL_BETREFF', $recv_messages[0]['betreff']); - } + if (!str_starts_with(strtoupper($recv_messages[0]['betreff']),"RE:")) { + $betreff = "RE: ".$recv_messages[0]['betreff']; + } else { + $betreff = $recv_messages[0]['betreff']; + } - $this->app->Tpl->Set('EMAIL_SENDER', $this->app->erp->GetSelectEmailMitName($dokument['von'])); + $anschreiben = $this->app->DB->Select("SELECT anschreiben FROM adresse WHERE id='".$result[0]['adresse']."' LIMIT 1"); + if($anschreiben=="") + { + $anschreiben = $this->app->erp->Beschriftung("dokument_anschreiben").",\n".$this->app->erp->Grussformel($projekt,$sprache); + } - $anschreiben = $this->app->DB->Select("SELECT anschreiben FROM adresse WHERE id='".$result[0]['adresse']."' LIMIT 1"); + $senderName = $this->app->User->GetName()." (".$this->app->erp->GetFirmaAbsender().")"; + $senderAddress = $this->app->erp->GetFirmaMail(); + + $sql = "INSERT INTO `ticket_nachricht` ( + `ticket`, `zeit`, `text`, `betreff`, `medium`, `versendet`, + `verfasser`, `mail`,`status`, `verfasser_replyto`, `mail_replyto` + ) VALUES ('".$result[0]['schluessel']."',NOW(),'".$anschreiben."','".$betreff."','email','1','','','neu','".$senderName."','".$senderAddress."');"; - if($anschreiben=="") - { - $anschreiben = $this->app->erp->Beschriftung("dokument_anschreiben"); - } - - $this->app->Tpl->Set('EMAIL_TEXT',$anschreiben.",\n".$this->app->erp->Grussformel($projekt,$sprache));; + $this->app->DB->Insert($sql); + } + // Show new message dialog $this->app->YUI->AutoComplete("email_an","emailname"); $this->app->YUI->AutoComplete("email_cc","emailname"); $this->app->YUI->AutoComplete("email_bcc","emailname"); $this->app->YUI->CkEditor("email_text","internal", null, 'JQUERY'); $this->app->Tpl->Parse('NEW_MESSAGE', "ticket_new_message.tpl"); break; - case 'absenden': +/* + case 'entwurfloeschen': + if (!empty($drafted_messages)) { + $sql = "UPDATE ticket_nachricht SET ticket = '' WHERE id=".$drafted_messages[0]['id']; + $msg = $this->app->erp->base64_url_encode("
Das Element wurde gelöscht..
"); + header("Location: index.php?module=ticket&action=edit&msg=$msg&id=$id"); + } + break; + case 'addfile': - $senderName = $this->app->User->GetName()." (".$this->app->erp->GetFirmaAbsender().")"; - $senderAddress = $this->app->erp->GetFirmaMail(); + $msg .= $result['userfile']; + + $this->app->Tpl->Set('EMAIL_AN', $input['email_an']); + $this->app->Tpl->Set('EMAIL_TEXT', $input['email_text']); + $this->app->Tpl->Set('EMAIL_BETREFF', $input['email_betreff']); + $this->app->Tpl->Set('EMAIL_SENDER', $input['email_sender']); + + $this->app->YUI->AutoComplete("email_an","emailname"); + $this->app->YUI->AutoComplete("email_cc","emailname"); + $this->app->YUI->AutoComplete("email_bcc","emailname"); + $this->app->YUI->CkEditor("email_text","internal", null, 'JQUERY'); + $this->app->Tpl->Parse('NEW_MESSAGE', "ticket_new_message.tpl"); + + break; +*/ + case 'absenden': + + if (empty($drafted_messages)) { + break; + } // Enforce Ticket # - if (!preg_match("/Ticket #[0-9]{12}/i", $input['email_betreff'])) { - $input['email_betreff'].= " Ticket #".$result[0]['schluessel']; + if (!preg_match("/Ticket #[0-9]{12}/i", $drafted_messages[0]['betreff'])) { + $drafted_messages[0]['betreff'].= " Ticket #".$result[0]['schluessel']; } + echo($drafted_messages[0]['id']."
"); + echo($drafted_messages[0]['verfasser_replyto']."
"); + echo($drafted_messages[0]['mail_replyto']."
"); + echo($drafted_messages[0]['mail']."
"); + echo($drafted_messages[0]['betreff']."
"); + echo($drafted_messages[0]['text']."
"); if ( $this->app->erp->MailSend( - $senderAddress, - $senderName, - $input['email_an'], - $input['email_an'], - $input['email_betreff'], - $input['email_text'], + $drafted_messages[0]['mail_replyto'], + $drafted_messages[0]['verfasser_replyto'], + $drafted_messages[0]['mail'], + $drafted_messages[0]['mail'], + $drafted_messages[0]['betreff'], + $drafted_messages[0]['text'], '',0,false,'','', true ) != 0 ) { - // Put message into ticket_nachricht - $sql = "INSERT INTO `ticket_nachricht` ( - `ticket`, `zeit`, `text`, `betreff`, `medium`, `versendet`, - `verfasser`, `mail`,`status`, `verfasser_replyto`, `mail_replyto` - ) VALUES ( - '".$result[0]['schluessel']."', - NOW(), - '".$input['email_text']."', - '".$input['email_betreff']."', - '".'email'."', - '1', - '".$senderName."', - '".$senderAddress."', - 'gesendet', - '".$senderName."', - '".$senderAddress."');"; - + // Update message in ticket_nachricht + $sql = "UPDATE `ticket_nachricht` SET `zeitausgang` = NOW(), `betreff` = '".$drafted_messages[0]['betreff']."' WHERE id = ".$drafted_messages[0]['id']; $this->app->DB->Insert($sql); $msg = '
Die E-Mail wurde erfolgreich versendet an '.$input['email_an'].'. '.$this->app->erp->mail_error.'
'; @@ -274,22 +406,29 @@ class Ticket { } // Get messsages again - $messages = $this->get_messages_of_ticket($id); + $messages = $this->get_messages_of_ticket($id,1); break; - } + } // Add Messages now foreach ($messages as $message) { - $this->app->Tpl->Set("NACHRICHT_BETREFF",$message['betreff']); - $this->app->Tpl->Set("NACHRICHT_ZEIT",$message['zeit']); if ($message['versendet'] == '1') { + + if (is_null($message['zeitausgang'])) { + continue; + } + + $this->app->Tpl->Set("NACHRICHT_RICHTUNG","An"); $this->app->Tpl->Set("NACHRICHT_FLOAT","right"); + $this->app->Tpl->Set("NACHRICHT_ZEIT",$message['zeitausgang']); } else { $this->app->Tpl->Set("NACHRICHT_RICHTUNG","Von"); $this->app->Tpl->Set("NACHRICHT_FLOAT","left"); + $this->app->Tpl->Set("NACHRICHT_ZEIT",$message['zeit']); } + $this->app->Tpl->Set("NACHRICHT_BETREFF",$message['betreff']); $this->app->Tpl->Set("NACHRICHT_NAME",$message['verfasser']); $this->app->Tpl->Set("NACHRICHT_EMAILADRESSE",$message['mail']); $this->app->Tpl->Set("NACHRICHT_TEXT",$message['text']); @@ -334,7 +473,7 @@ class Ticket { $input['prio'] = $this->app->Secure->GetPOST('prio'); $input['notiz'] = $this->app->Secure->GetPOST('notiz'); $input['tags'] = $this->app->Secure->GetPOST('tags'); - + $input['betreff'] = $this->app->Secure->GetPOST('betreff'); $input['email_sender'] = $this->app->Secure->GetPOST('email_sender'); $input['email_an'] = $this->app->Secure->GetPOST('email_an'); $input['email_cc'] = $this->app->Secure->GetPOST('email_cc'); @@ -382,29 +521,29 @@ class Ticket { // $this->app->Tpl->Set('EMAIL', $input['email']); $this->app->Tpl->Set('SCHLUESSEL', $input['schluessel']); - $this->app->Tpl->Set('ZEIT', $input['zeit']); - $this->app->Tpl->Set('PROJEKT', $input['projekt']); - $this->app->Tpl->Set('BEARBEITER', $input['bearbeiter']); - $this->app->Tpl->Set('QUELLE', $input['quelle']); - $this->app->Tpl->Set('STATUS', $input['status']); - $this->app->Tpl->Set('ADRESSE', $input['adresse']); - $this->app->Tpl->Set('KUNDE', $input['kunde']); - $this->app->Tpl->Set('WARTESCHLANGE', $input['warteschlange']); - $this->app->Tpl->Set('MAILADRESSE', $input['mailadresse']); - $this->app->Tpl->Set('PRIO', $input['prio']); - $this->app->Tpl->Set('BETREFF', $input['betreff']); - $this->app->Tpl->Set('ZUGEWIESEN', $input['zugewiesen']); - $this->app->Tpl->Set('INBEARBEITUNG', $input['inbearbeitung']); - $this->app->Tpl->Set('INBEARBEITUNG_USER', $input['inbearbeitung_user']); - $this->app->Tpl->Set('FIRMA', $input['firma']); - $this->app->Tpl->Set('NOTIZ', $input['notiz']); - $this->app->Tpl->Set('BITTEANTWORTEN', $input['bitteantworten']); - $this->app->Tpl->Set('SERVICE', $input['service']); - $this->app->Tpl->Set('KOMMENTAR', $input['kommentar']); - $this->app->Tpl->Set('PRIVAT', $input['privat']); - $this->app->Tpl->Set('DSGVO', $input['dsgvo']); - $this->app->Tpl->Set('TAGS', $input['tags']); - $this->app->Tpl->Set('NACHRICHTEN_ANZ', $input['nachrichten_anz']); + $this->app->Tpl->Set('ZEIT', $input['zeit']); + $this->app->Tpl->Set('PROJEKT', $input['projekt']); + $this->app->Tpl->Set('BEARBEITER', $input['bearbeiter']); + $this->app->Tpl->Set('QUELLE', $input['quelle']); + $this->app->Tpl->Set('STATUS', $input['status']); + $this->app->Tpl->Set('ADRESSE', $input['adresse']); + $this->app->Tpl->Set('KUNDE', $input['kunde']); + $this->app->Tpl->Set('WARTESCHLANGE', $input['warteschlange']); + $this->app->Tpl->Set('MAILADRESSE', $input['mailadresse']); + $this->app->Tpl->Set('PRIO', $input['prio']); + $this->app->Tpl->Set('BETREFF', $input['betreff']); + $this->app->Tpl->Set('ZUGEWIESEN', $input['zugewiesen']); + $this->app->Tpl->Set('INBEARBEITUNG', $input['inbearbeitung']); + $this->app->Tpl->Set('INBEARBEITUNG_USER', $input['inbearbeitung_user']); + $this->app->Tpl->Set('FIRMA', $input['firma']); + $this->app->Tpl->Set('NOTIZ', $input['notiz']); + $this->app->Tpl->Set('BITTEANTWORTEN', $input['bitteantworten']); + $this->app->Tpl->Set('SERVICE', $input['service']); + $this->app->Tpl->Set('KOMMENTAR', $input['kommentar']); + $this->app->Tpl->Set('PRIVAT', $input['privat']); + $this->app->Tpl->Set('DSGVO', $input['dsgvo']); + $this->app->Tpl->Set('TAGS', $input['tags']); + $this->app->Tpl->Set('NACHRICHTEN_ANZ', $input['nachrichten_anz']); }