- Модуль: lists
- Путь к файлу: ~/bitrix/modules/lists/lib/copy/implement/children/field.php
- Класс: BitrixListsCopyImplementChildrenField
- Вызов: Field::getFieldsToCopy
private function getFieldsToCopy($iblockId, $copiedIblockId)
{
$fields = [];
$object = new CList($iblockId);
foreach($object->getFields() as $fieldId => $field)
{
$copiedField = [
"ID" => $fieldId,
"NAME" => $field["NAME"],
"SORT" => $field["SORT"],
"MULTIPLE" => $field["MULTIPLE"],
"IS_REQUIRED" => $field["IS_REQUIRED"],
"IBLOCK_ID" => $copiedIblockId,
"SETTINGS" => $field["SETTINGS"],
"DEFAULT_VALUE" => $field["DEFAULT_VALUE"],
"TYPE" => $field["TYPE"],
"PROPERTY_TYPE" => $field["PROPERTY_TYPE"],
];
if (!$object->is_field($fieldId))
{
if ($field["TYPE"] == "L")
{
$copiedField["VALUES"] = $this->getEnumValues($fieldId);
}
$copiedField["CODE"] = $field["CODE"];
$copiedField["LINK_IBLOCK_ID"] = $field["LINK_IBLOCK_ID"];
if (!empty($field["PROPERTY_USER_TYPE"]["USER_TYPE"]))
$copiedField["USER_TYPE"] = $field["PROPERTY_USER_TYPE"]["USER_TYPE"];
if (!empty($field["ROW_COUNT"]))
$copiedField["ROW_COUNT"] = $field["ROW_COUNT"];
if (!empty($field["COL_COUNT"]))
$copiedField["COL_COUNT"] = $field["COL_COUNT"];
if (!empty($field["USER_TYPE_SETTINGS"]))
$copiedField["USER_TYPE_SETTINGS"] = $field["USER_TYPE_SETTINGS"];
}
$fields[] = $copiedField;
}
return $fields;
}