protected function formatCurrentValue($field, $value, $mode)
{
$remoteNew = $value;
// see #3861
if ($GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['inputType'] == 'checkbox' && !$GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['eval']['multiple']) {
$remoteNew = $value != '' ? ucfirst($GLOBALS['TL_LANG']['MSC']['yes']) : ucfirst($GLOBALS['TL_LANG']['MSC']['no']);
} elseif (isset($GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['foreignKey'])) {
$key = explode('.', $GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['foreignKey'], 2);
$objParent = $this->Database->prepare("SELECT " . $key[1] . " AS value FROM " . $key[0] . " WHERE id=?")->limit(1)->execute($value);
if ($objParent->numRows) {
$remoteNew = $objParent->value;
}
} elseif (in_array($mode, array(1, 2))) {
$remoteNew = $value != '' ? ucfirst(Utf8::substr($value, 0, 1)) : '-';
} elseif (in_array($mode, array(3, 4))) {
if (!isset($GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['length'])) {
$GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['length'] = 2;
}
$remoteNew = $value != '' ? ucfirst(Utf8::substr($value, 0, $GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['length'])) : '-';
} elseif (in_array($mode, array(5, 6))) {
$remoteNew = $value != '' ? \Date::parse(\Config::get('dateFormat'), $value) : '-';
} elseif (in_array($mode, array(7, 8))) {
$remoteNew = $value != '' ? date('Y-m', $value) : '-';
$intMonth = $value != '' ? date('m', $value) - 1 : '-';
if (isset($GLOBALS['TL_LANG']['MONTHS'][$intMonth])) {
$remoteNew = $value != '' ? $GLOBALS['TL_LANG']['MONTHS'][$intMonth] . ' ' . date('Y', $value) : '-';
}
} elseif (in_array($mode, array(9, 10))) {
$remoteNew = $value != '' ? date('Y', $value) : '-';
} else {
if ($GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['inputType'] == 'checkbox' && !$GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['eval']['multiple']) {
$remoteNew = $value != '' ? $field : '';
} elseif (is_array($GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['reference'])) {
$remoteNew = $GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['reference'][$value];
} elseif ($GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['eval']['isAssociative'] || array_is_assoc($GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['options'])) {
$remoteNew = $GLOBALS['TL_DCA'][$this->strTable]['fields'][$field]['options'][$value];
} else {
$remoteNew = $value;
}
if (is_array($remoteNew)) {
$remoteNew = $remoteNew[0];
}
if (empty($remoteNew)) {
$remoteNew = '-';
}
}
return $remoteNew;
}