• Модуль: 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();
		}
	}
}