/** * 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); } } } }