- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/userfield.php
- Класс: BitrixMainUserFieldTable
- Вызов: UserFieldTable::setMultipleFieldSerialization
static function setMultipleFieldSerialization(ORMFieldsField $entityField, $fieldAsType)
{
global $USER_FIELD_MANAGER;
if (!($fieldAsType instanceof ORMFieldsField))
{
$fieldAsType = $USER_FIELD_MANAGER->getEntityField($fieldAsType);
}
if ($fieldAsType instanceof ORMFieldsDatetimeField)
{
if ($entityField instanceof ORMFieldsArrayField)
{
$entityField->configureSerializeCallback([__CLASS__, 'serializeMultipleDatetime']);
$entityField->configureUnserializeCallback([__CLASS__, 'unserializeMultipleDatetime']);
}
else
{
$entityField->addSaveDataModifier([__CLASS__, 'serializeMultipleDatetime']);
$entityField->addFetchDataModifier([__CLASS__, 'unserializeMultipleDatetime']);
}
}
elseif ($fieldAsType instanceof ORMFieldsDateField)
{
if ($entityField instanceof ORMFieldsArrayField)
{
$entityField->configureSerializeCallback([__CLASS__, 'serializeMultipleDate']);
$entityField->configureUnserializeCallback([__CLASS__, 'unserializeMultipleDate']);
}
else
{
$entityField->addSaveDataModifier([__CLASS__, 'serializeMultipleDate']);
$entityField->addFetchDataModifier([__CLASS__, 'unserializeMultipleDate']);
}
}
else
{
if ($entityField instanceof ORMFieldsArrayField)
{
$entityField->configureSerializationPhp();
}
else
{
$entityField->setSerialized();
}
}
}