/**
  * Kontrolliert die Daten, welche aus dem Formular stammen. Sind die Daten fehlerhaft (leere oder ungültige Einträge)
  * gibt die Funktion false zurück und der Parameter $answer enthält die Fehlermeldungen.
  * Sind die Daten hingegen gut, enthält $answer ein Array mit den Daten aus dem Formular.
  *
  * @param array[ref] $answer Antwort-Array, wird als Referenz übergeben. Enthält die Daten oder Fehlertexte
  * @return boolean Erfolg(true) oder Fehler(false)
  */
 private function _checkformdata(&$answer)
 {
     $answer = array();
     $entry_vars = $this->_config_textes['Editor-Entry'];
     $error_vars = $this->_config_textes['Editor-Error'];
     $formcheck = new Formularcheck();
     $post_vars = $this->_gpc['POST'];
     $val = array('m_name' => $post_vars['menu_name'], 'm_pos' => $post_vars['menu_position'], 'm_topid' => $post_vars['menu_topid'], 'm_modus' => $post_vars['menu_modus'], 'm_page' => $post_vars['menu_page']);
     $std = array('m_name' => $entry_vars['menu_name'], 'm_pos' => '', 'm_topid' => '', 'm_modus' => '', 'm_page' => '');
     $err = array('m_name' => $error_vars['menu_name_error'], 'm_pos' => $error_vars['menu_position_error'], 'm_topid' => $error_vars['menu_topid_error'], 'm_modus' => $error_vars['menu_modus_error'], 'm_page' => $error_vars['menu_page_error']);
     $fmcheck_array = $formcheck->field_check_arr($val, $std);
     foreach ($fmcheck_array as $key => $value) {
         if ($value == false) {
             $answer[] = $err[$key];
         }
     }
     if (key_exists('menu_display', $post_vars)) {
         $val['m_display'] = true;
     } else {
         $val['m_display'] = false;
     }
     /* weitere Tests durchführen */
     if (!is_numeric($val['m_pos']) && !in_array($err['m_pos'], $answer)) {
         $answer[] = $err['m_pos'];
     }
     if (!is_numeric($val['m_topid']) && !in_array($err['m_topid'], $answer)) {
         $answer[] = $err['m_topid'];
     }
     if ($val['m_modus'] != 'pag' && $val['m_modus'] != 'mod' && !in_array($err['m_modus'], $answer)) {
         $answer[] = $err['m_modus'];
     }
     if (!is_numeric($val['m_page']) && !in_array($err['m_page'], $answer)) {
         $answer[] = $err['m_page'];
     }
     if (key_exists('ref_ID', $this->_gpc['GET']) && $val['m_topid'] == $this->_gpc['GET']['ref_ID']) {
         $answer[] = $error_vars['menu_topideqid_error'];
     }
     /* Keine Fehler gefunden -> Daten in $answer speichern */
     if (empty($answer)) {
         $answer = $val;
         return true;
     } else {
         return false;
     }
 }
 /**
  * Kontrolliert die Daten, welche aus dem Formular stammen. Sind die Daten fehlerhaft (leere oder ungültige Einträge)
  * gibt die Funktion false zurück und der Parameter $answer enthält die Fehlermeldungen.
  * Sind die Daten hingegen gut, enthält $answer ein Array mit den Daten aus dem Formular.
  *
  * @param array[ref] $answer Antwort-Array, wird als Referenz übergeben. Enthält die Daten oder Fehlertexte
  * @return boolean Erfolg(true) oder Fehler(false
  */
 private function _checkformdata(&$answer)
 {
     $answer = array();
     $entry_vars = $this->_config_textes['Editor-Entry'];
     $error_vars = $this->_config_textes['Editor-Error'];
     $formcheck = new Formularcheck();
     $post_vars = $this->_gpc['POST'];
     $val = array('c_title' => $post_vars['content_title'], 'c_text' => $post_vars['content_text']);
     $std = array('c_title' => $entry_vars['content_title'], 'c_text' => $entry_vars['content_text']);
     $err = array('c_title' => $error_vars['content_title_error'], 'c_text' => $error_vars['content_text_error']);
     /* Menu-Einträge ignorieren? */
     if (!key_exists('menu_ignore', $this->_gpc['POST'])) {
         $tmp['m_ignore'] = false;
         $val += array('m_name' => $post_vars['menu_name'], 'm_pos' => $post_vars['menu_position'], 'm_topid' => $post_vars['menu_topid']);
         $std += array('m_name' => $entry_vars['menu_name'], 'm_pos' => '', 'm_topid' => '');
         $err += array('m_name' => $error_vars['menu_name_error'], 'm_pos' => $error_vars['menu_position_error'], 'm_topid' => $error_vars['menu_topid_error']);
         if (key_exists('menu_ID', $post_vars)) {
             $tmp['m_ID'] = (int) $post_vars['menu_ID'];
             if ($val['m_topid'] == $tmp['m_ID']) {
                 $answer[] = $error_vars['menu_topideqid_error'];
             }
         }
         if (key_exists('menu_new', $post_vars)) {
             $tmp['m_new'] = $post_vars['menu_new'];
         } else {
             $tmp['m_new'] = false;
         }
         if (!is_numeric($val['m_pos'])) {
             $answer[] = $err['m_pos'];
         }
         if (!is_numeric($val['m_topid'])) {
             $answer[] = $err['m_topid'];
         }
     } else {
         $tmp['m_ignore'] = true;
     }
     if (key_exists('content_hide', $this->_gpc['POST'])) {
         $tmp['c_hide'] = true;
     } else {
         $tmp['c_hide'] = false;
     }
     if (key_exists('menu_display', $this->_gpc['POST'])) {
         $tmp['m_display'] = true;
     } else {
         $tmp['m_display'] = false;
     }
     $fmcheck_array = $formcheck->field_check_arr($val, $std);
     foreach ($fmcheck_array as $key => $value) {
         if ($value == false) {
             $answer[] = $err[$key];
         }
     }
     /* Keine Fehler gefunden -> Daten in $answer speichern */
     if (empty($answer)) {
         $answer = $val;
         $answer += $tmp;
         return true;
     } else {
         return false;
     }
 }
 /**
  * Kontrolliert das Formular auf Standarteinträge, richtige Mailmuster und Captcha-Wort.
  * Ist alles ordnungsgemäss, wird true zurückgegeben, sonst false. Bei false finden sich die Mängel
  * in $answer.
  *
  * @param array[reference] $answer Antowrt
  * @return boolean Erfolg
  */
 private function _check_form(&$answer)
 {
     $mail_textes = $this->_config_textes['Mail'];
     $error_textes = $this->_config_textes['Error'];
     /* Formularcheck vorbereiten */
     $formcheck = new Formularcheck();
     $val = array($this->_gpc['POST']['title'], $this->_gpc['POST']['content'], $this->_gpc['POST']['name'], $this->_gpc['POST']['email']);
     $std = array($mail_textes['entry_title'], $mail_textes['entry_content'], $mail_textes['entry_name'], $mail_textes['entry_email']);
     $err = array($error_textes['title_error'], $error_textes['content_error'], $error_textes['name_error'], $error_textes['email_error']);
     $rtn_arr = $formcheck->field_check_arr($val, $std);
     //Fehlerarray durchgehen
     foreach ($rtn_arr as $key => $value) {
         if ($value == false) {
             $answer[] = $err[$key];
         }
     }
     //Email-Adresse auf Gültigkeit prüfen
     if ($this->_gpc['POST']['email'] != "" && $formcheck->mailcheck($this->_gpc['POST']['email']) > 0) {
         $answer[] = $error_textes['email_checkfailed'];
     }
     if (empty($answer)) {
         return true;
     } else {
         return false;
     }
 }