• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/copy/manager.php
  • Класс: BitrixIblockCopyManager
  • Вызов: Manager::getIblockCopier
private function getIblockCopier()
{
	global $CACHE_MANAGER;

	$iblockImplementer = ($this->iblockImplementer ? $this->iblockImplementer : new IblockImplementer());

	$iblockImplementer->setTargetIblockTypeId($this->targetIblockTypeId);
	$iblockImplementer->setTargetSocnetGroupId($this->targetSocnetGroupId);
	if (is_object($CACHE_MANAGER))
	{
		$iblockImplementer->setCacheManager($CACHE_MANAGER);
	}

	$sectionImplementer = null;
	if (in_array("field", $this->features))
	{
		if (!$this->fieldImplementer)
		{
			$this->fieldImplementer = new FieldImplementer();
		}
		$iblockImplementer->setChild($this->fieldImplementer);
	}
	if (in_array("section", $this->features))
	{
		$sectionImplementer = new SectionImplementer();
		$iblockImplementer->setChild($sectionImplementer);
	}
	if (in_array("element", $this->features))
	{
		$elementImplementer = new ElementImplementer(ElementImplementer::IBLOCK_COPY_MODE);
		$iblockImplementer->setChild($elementImplementer);
	}
	if (in_array("workflow", $this->features) && Loader::includeModule("bizproc"))
	{
		if (!$this->workflowImplementer)
		{
			$this->workflowImplementer = new WorkflowImplementer($this->iblockTypeId);
		}
		$iblockImplementer->setChild($this->workflowImplementer);
	}

	return new EntityCopier($iblockImplementer);
}