- Модуль: 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;
}