• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/copy/implement/element.php
  • Класс: BitrixIblockCopyImplementElement
  • Вызов: Element::prepareFieldsToCopy
public function prepareFieldsToCopy(Container $container, array $inputFields)
{
	$fields = [
		"PROPERTY_VALUES" => []
	];

	foreach ($inputFields as $fieldId => $fieldValue)
	{
		if (mb_substr($fieldId, 0, 9) == "PROPERTY_")
		{
			$propertyId = mb_substr($fieldId, mb_strlen("PROPERTY_"));
			$fields["PROPERTY_VALUES"][$propertyId] = $this->getPropertyFieldValue(
				$container, $fieldId, $fieldValue);
		}
		else
		{
			$fields[$fieldId] = $this->getFieldValue($fieldId, $fieldValue);
		}
	}

	unset($fields["DATE_CREATE"]);
	unset($fields["TIMESTAMP_X"]);
	unset($fields["XML_ID"]);

	$dictionary = $container->getDictionary();

	if (array_key_exists($fields["IBLOCK_SECTION_ID"], $dictionary["sectionsRatio"]))
	{
		$fields["IBLOCK_SECTION_ID"] = $dictionary["sectionsRatio"][$fields["IBLOCK_SECTION_ID"]];
	}

	$fields["RIGHTS"] = $this->getRights($fields["IBLOCK_ID"], $fields["ID"]);

	if (!empty($dictionary["targetIblockId"]))
	{
		$fields["IBLOCK_ID"] = $dictionary["targetIblockId"];
		$fields = $this->convertPropertyId($fields, $dictionary["targetIblockId"]);
	}

	return $fields;
}