- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/usertypemanager.php
- Класс: CUserTypeManager
- Вызов: CUserTypeManager::EditFormAddFields
function EditFormAddFields($entity_id, &$arFields, array $options = null)
{
if(!is_array($options))
{
$options = array();
}
if(!is_array($arFields))
{
$arFields = array();
}
$files = $options['FILES'] ?? $_FILES;
$form = isset($options['FORM']) && is_array($options['FORM']) ? $options['FORM'] : $GLOBALS;
$arUserFields = $this->GetUserFields($entity_id);
foreach($arUserFields as $arUserField)
{
if($arUserField["EDIT_IN_LIST"] == "Y")
{
if($arUserField["USER_TYPE"]["BASE_TYPE"] == "file")
{
if(isset($files[$arUserField["FIELD_NAME"]]))
{
if(is_array($files[$arUserField["FIELD_NAME"]]["name"]))
{
$arFields[$arUserField["FIELD_NAME"]] = array();
foreach($files[$arUserField["FIELD_NAME"]]["name"] as $key => $value)
{
$old_id = $form[$arUserField["FIELD_NAME"] . "_old_id"][$key];
$arFields[$arUserField["FIELD_NAME"]][$key] = array(
"name" => $files[$arUserField["FIELD_NAME"]]["name"][$key],
"type" => $files[$arUserField["FIELD_NAME"]]["type"][$key],
"tmp_name" => $files[$arUserField["FIELD_NAME"]]["tmp_name"][$key],
"error" => $files[$arUserField["FIELD_NAME"]]["error"][$key],
"size" => $files[$arUserField["FIELD_NAME"]]["size"][$key],
"del" => is_array($form[$arUserField["FIELD_NAME"] . "_del"]) &&
(in_array($old_id, $form[$arUserField["FIELD_NAME"] . "_del"]) ||
(
array_key_exists($key, $form[$arUserField["FIELD_NAME"] . "_del"]) &&
$form[$arUserField["FIELD_NAME"] . "_del"][$key] == "Y"
)
),
"old_id" => $old_id
);
}
}
else
{
$arFields[$arUserField["FIELD_NAME"]] = $files[$arUserField["FIELD_NAME"]];
$arFields[$arUserField["FIELD_NAME"]]["del"] = $form[$arUserField["FIELD_NAME"] . "_del"];
$arFields[$arUserField["FIELD_NAME"]]["old_id"] = $form[$arUserField["FIELD_NAME"] . "_old_id"];
}
}
else
{
if(isset($form[$arUserField["FIELD_NAME"]]))
{
if(!is_array($form[$arUserField["FIELD_NAME"]]))
{
if(intval($form[$arUserField["FIELD_NAME"]]) > 0)
{
$arFields[$arUserField["FIELD_NAME"]] = intval($form[$arUserField["FIELD_NAME"]]);
}
}
else
{
$fields = array();
foreach($form[$arUserField["FIELD_NAME"]] as $val)
{
if(intval($val) > 0)
{
$fields[] = intval($val);
}
}
$arFields[$arUserField["FIELD_NAME"]] = $fields;
}
}
}
}
else
{
if(isset($files[$arUserField["FIELD_NAME"]]))
{
$arFile = array();
CFile::ConvertFilesToPost($files[$arUserField["FIELD_NAME"]], $arFile);
if(isset($form[$arUserField["FIELD_NAME"]]))
{
if($arUserField["MULTIPLE"] == "Y")
{
foreach($form[$arUserField["FIELD_NAME"]] as $key => $value)
$arFields[$arUserField["FIELD_NAME"]][$key] = array_merge($value, $arFile[$key]);
}
else
{
$arFields[$arUserField["FIELD_NAME"]] = array_merge($form[$arUserField["FIELD_NAME"]], $arFile);
}
}
else
{
$arFields[$arUserField["FIELD_NAME"]] = $arFile;
}
}
else
{
if(isset($form[$arUserField["FIELD_NAME"]]))
$arFields[$arUserField["FIELD_NAME"]] = $form[$arUserField["FIELD_NAME"]];
}
}
}
}
}