/**
  * Substitutes markers
  * 		###error_[fieldname]###
  * 		###ERROR###
  * in $this->template
  *
  * @return void
  */
 protected function fillErrorMarkers(&$errors)
 {
     $markers = array();
     $singleWrap = $this->settings['singleErrorTemplate.']['singleWrap'];
     foreach ($errors as $field => $types) {
         $errorMessages = array();
         $clearErrorMessages = array();
         $temp = Tx_Formhandler_StaticFuncs::getTranslatedMessage($this->langFiles, 'error_' . $field);
         if (strlen($temp) > 0) {
             $errorMessage = $temp;
             if (strlen($singleWrap) > 0 && strstr($singleWrap, '|')) {
                 $errorMessage = str_replace('|', $errorMessage, $singleWrap);
             }
             $errorMessages[] = $errorMessage;
         }
         if (!is_array($types)) {
             $types = array($types);
         }
         foreach ($types as $idx => $type) {
             $temp = t3lib_div::trimExplode(';', $type);
             $type = array_shift($temp);
             foreach ($temp as $subIdx => $item) {
                 $item = t3lib_div::trimExplode('::', $item);
                 $values[$item[0]] = $item[1];
             }
             //try to load specific error message with key like error_fieldname_integer
             $errorMessage = Tx_Formhandler_StaticFuncs::getTranslatedMessage($this->langFiles, 'error_' . $field . '_' . $type);
             if (strlen($errorMessage) === 0) {
                 $type = strtolower($type);
                 $errorMessage = Tx_Formhandler_StaticFuncs::getTranslatedMessage($this->langFiles, 'error_' . $field . '_' . $type);
             }
             if ($errorMessage) {
                 if (is_array($values)) {
                     foreach ($values as $key => $value) {
                         $errorMessage = str_replace('###' . $key . '###', $value, $errorMessage);
                     }
                 }
                 if (strlen($singleWrap) > 0 && strstr($singleWrap, '|')) {
                     $errorMessage = str_replace('|', $errorMessage, $singleWrap);
                 }
                 $errorMessages[] = $errorMessage;
             } else {
                 Tx_Formhandler_StaticFuncs::debugMessage('no_error_message', array('error_' . $field . '_' . $type), 2);
             }
         }
         $errorMessage = implode('', $errorMessages);
         $totalWrap = $this->settings['singleErrorTemplate.']['totalWrap'];
         if (strlen($totalWrap) > 0 && strstr($totalWrap, '|')) {
             $errorMessage = str_replace('|', $errorMessage, $totalWrap);
         }
         $clearErrorMessage = $errorMessage;
         if ($this->settings['addErrorAnchors']) {
             $errorMessage = '<a name="' . $field . '">' . $errorMessage . '</a>';
         }
         $langMarkers = Tx_Formhandler_StaticFuncs::getFilledLangMarkers($errorMessage, $this->langFiles);
         $errorMessage = $this->cObj->substituteMarkerArray($errorMessage, $langMarkers);
         $markers['###error_' . $field . '###'] = $errorMessage;
         $markers['###ERROR_' . strtoupper($field) . '###'] = $errorMessage;
         $errorMessage = $clearErrorMessage;
         if ($this->settings['addErrorAnchors']) {
             $errorMessage = '<a href="' . t3lib_div::getIndpEnv('REQUEST_URI') . '#' . $field . '">' . $errorMessage . '</a>';
         }
         //list settings
         $listSingleWrap = $this->settings['errorListTemplate.']['singleWrap'];
         if (strlen($listSingleWrap) > 0 && strstr($listSingleWrap, '|')) {
             $errorMessage = str_replace('|', $errorMessage, $listSingleWrap);
         }
         $markers['###ERROR###'] .= $errorMessage;
     }
     $totalWrap = $this->settings['errorListTemplate.']['totalWrap'];
     if (strlen($totalWrap) > 0 && strstr($totalWrap, '|')) {
         $markers['###ERROR###'] = str_replace('|', $markers['###ERROR###'], $totalWrap);
     }
     $langMarkers = Tx_Formhandler_StaticFuncs::getFilledLangMarkers($markers['###ERROR###'], $this->langFiles);
     $markers['###ERROR###'] = $this->cObj->substituteMarkerArray($markers['###ERROR###'], $langMarkers);
     $markers['###error###'] = $markers['###ERROR###'];
     $this->template = $this->cObj->substituteMarkerArray($this->template, $markers);
 }
 /**
  * Substitutes markers like ###LLL:langKey### in given TypoScript settings array.
  *
  * @param array &$settings The E-Mail settings
  * @return void
  */
 protected function fillLangMarkersInSettings(&$settings)
 {
     foreach ($settings as &$value) {
         if (isset($value) && is_array($value)) {
             $this->fillLangMarkersInSettings($value);
         } else {
             $langMarkers = Tx_Formhandler_StaticFuncs::getFilledLangMarkers($value, $this->langFile);
             if (!empty($langMarkers)) {
                 $value = $this->cObj->substituteMarkerArray($value, $langMarkers);
             }
         }
     }
 }