- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/classes/general/prop_html.php
- Класс: CIBlockPropertyHTML
- Вызов: CIBlockPropertyHTML::ConvertToDB
static function ConvertToDB($arProperty, $value)
{
global $DB;
$return = false;
if (!is_array($value))
{
$value = static::getValueFromString($value, true);
}
elseif (isset($value['VALUE']) && !is_array($value['VALUE']))
{
$value['VALUE'] = static::getValueFromString($value['VALUE'], false);
}
$defaultValue = isset($value['DEFAULT_VALUE']) && $value['DEFAULT_VALUE'] === true;
if(
is_array($value)
&& array_key_exists("VALUE", $value)
)
{
if (
isset($value['VALUE']['TEXT'])
&& !is_scalar($value['VALUE']['TEXT'])
)
{
$value['VALUE']['TEXT'] =
is_object($value['VALUE']['TEXT']) && method_exists($value['VALUE']['TEXT'], '__toString')
? (string)$value['VALUE']['TEXT']
: ''
;
}
$value['VALUE']['TEXT'] ??= '';
$value['VALUE']['TEXT'] = trim($value['VALUE']['TEXT']);
if (Loader::includeModule('bitrix24'))
{
$sanitizer = new CBXSanitizer();
$sanitizer->setLevel(CBXSanitizer::SECURE_LEVEL_LOW);
$sanitizer->ApplyDoubleEncode(false);
$value['VALUE']['TEXT'] = $sanitizer->SanitizeHtml($value['VALUE']['TEXT']);
}
$len = mb_strlen($value['VALUE']['TEXT']);
if ($len > 0 || $defaultValue)
{
if ($DB->type === 'MYSQL')
$limit = 63200;
else
$limit = 1950;
if ($len > $limit)
{
$value['VALUE']['TEXT'] = mb_substr($value['VALUE']['TEXT'], 0, $limit);
}
$val = static::CheckArray($value['VALUE'], $defaultValue);
if (is_array($val))
{
$return = array(
'VALUE' => serialize($val),
);
if (isset($value['DESCRIPTION']) && is_string($value['DESCRIPTION']))
{
$value['DESCRIPTION'] = trim($value['DESCRIPTION']);
if ($value['DESCRIPTION'] !== '')
{
$return['DESCRIPTION'] = $value['DESCRIPTION'];
}
}
}
}
}
return $return;
}