- Модуль: bizproc
- Путь к файлу: ~/bitrix/modules/bizproc/lib/basetype/stringtype.php
- Класс: BitrixBizprocBaseTypeStringType
- Вызов: StringType::convertTo
static function convertTo(FieldType $fieldType, $value, $toTypeClass)
{
/** @var Base $toTypeClass */
$type = $toTypeClass::getType();
switch ($type)
{
case FieldType::BOOL:
$value = mb_strtolower((string)$value);
$value = in_array($value, ['y', 'yes', 'true', '1']) ? 'Y' : 'N';
break;
case FieldType::DATE:
case FieldType::DATETIME:
$value = (string)$value;
if (BizprocBaseTypeValueDateTime::isSerialized($value))
{
break;
}
if ($value)
{
$format = ($type == FieldType::DATE) ? FORMAT_DATE : FORMAT_DATETIME;
if (CheckDateTime($value, $format))
{
$value = date(
MainTypeDate::convertFormatToPhp($format),
CBPHelper::makeTimestamp($value, $format)
);
}
else
{
$value = date(MainTypeDate::convertFormatToPhp($format), strtotime($value));
}
}
break;
case FieldType::DOUBLE:
$value = str_replace(' ', '', str_replace(',', '.', $value));
$value = (float)$value;
break;
case FieldType::INT:
$value = str_replace(' ', '', $value);
$value = (int)$value;
break;
case FieldType::STRING:
case FieldType::TEXT:
$value = (string)$value;
break;
case FieldType::USER:
$value = trim($value);
if (
mb_strpos($value, 'user_') === false
&& mb_strpos($value, 'group_') === false
&& !preg_match('#^[0-9]+$#', $value)
)
{
$value = null;
}
break;
case FieldType::TIME:
$value = trim((string)$value);
$value =
BizprocBaseTypeValueTime::isCorrect($value)
? (string)(new BizprocBaseTypeValueTime($value))
: null
;
break;
default:
$value = null;
}
return $value;
}