- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/usertypemanager.php
- Класс: CUserTypeManager
- Вызов: CUserTypeManager::copy
public function copy($entity_id, $id, $copiedId, $entityObject, $userId = false, $ignoreList = [])
{
$userFields = $this->getUserFields($entity_id, $id);
$fields = [];
foreach($userFields as $fieldName => $userField)
{
if(!in_array($fieldName, $ignoreList))
{
if(is_callable([$userField["USER_TYPE"]["CLASS_NAME"], "onBeforeCopy"]))
{
$fields[$fieldName] = call_user_func_array(
[$userField["USER_TYPE"]["CLASS_NAME"], "onBeforeCopy"],
[$userField, $copiedId, $userField["VALUE"], $entityObject, $userId]
);
}
else
{
$fields[$fieldName] = $userField["VALUE"];
}
}
}
$this->update($entity_id, $copiedId, $fields, $userId);
foreach($userFields as $fieldName => $userField)
{
if(!in_array($fieldName, $ignoreList))
{
if(is_callable([$userField["USER_TYPE"]["CLASS_NAME"], "onAfterCopy"]))
{
$fields[$fieldName] = call_user_func_array(
[$userField["USER_TYPE"]["CLASS_NAME"], "onAfterCopy"],
[$userField, $copiedId, $fields[$fieldName], $entityObject, $userId]
);
}
}
}
}