• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/workflowtemplateloader.php
  • Класс: CBPWorkflowTemplateLoader
  • Вызов: CBPWorkflowTemplateLoader::importTemplateFromArray
static function importTemplateFromArray($id, $documentType, $autoExecute, $name, $description, $templateFields, $systemCode = null, $systemImport = false)
{
	$id = intval($id);
	if ($id <= 0)
		$id = 0;

	if (!$systemImport)
	{
		if (!self::WalkThroughWorkflowTemplate($templateFields["TEMPLATE"], array("CBPWorkflowTemplateLoader", "ImportTemplateChecker"), new CBPWorkflowTemplateUser(CBPWorkflowTemplateUser::CurrentUser)))
			return false;
	}
	elseif ($id > 0 && !empty($templateFields["CONSTANTS"]))
	{
		$userConstants = self::getTemplateConstants($id);
		if (!empty($userConstants))
		{
			foreach ($userConstants as $constantName => $constantData)
			{
				if (isset($templateFields["CONSTANTS"][$constantName]))
				{
					$templateFields["CONSTANTS"][$constantName]['Default'] = $constantData['Default'];
				}
			}
		}
	}

	$templateData = array(
		"DOCUMENT_TYPE" => $documentType,
		"AUTO_EXECUTE" => $autoExecute,
		"NAME" => $name,
		"DESCRIPTION" => $description,
		"TEMPLATE" => $templateFields["TEMPLATE"],
		"PARAMETERS" => $templateFields["PARAMETERS"],
		"VARIABLES" => $templateFields["VARIABLES"],
		"CONSTANTS" => $templateFields["CONSTANTS"],
		"USER_ID" => $systemImport ? 1 : $GLOBALS["USER"]->GetID(),
		"MODIFIER_USER" => new CBPWorkflowTemplateUser($systemImport ? 1 : CBPWorkflowTemplateUser::CurrentUser),
	);
	if (!is_null($systemCode))
		$templateData["SYSTEM_CODE"] = $systemCode;
	if ($id <= 0)
		$templateData['ACTIVE'] = 'Y';

	if ($id > 0)
		self::Update($id, $templateData, $systemImport);
	else
		$id = self::Add($templateData, $systemImport);

	if ($templateFields['DOCUMENT_FIELDS'] && is_array($templateFields['DOCUMENT_FIELDS']))
	{
		static::importDocumentFields($documentType, $templateFields['DOCUMENT_FIELDS']);
	}

	return $id;
}