- Модуль: bizproc
- Путь к файлу: ~/bitrix/modules/bizproc/classes/general/workflowtemplateloader.php
- Класс: CBPWorkflowTemplateLoader
- Вызов: CBPWorkflowTemplateLoader::validateTemplate
public function validateTemplate($arActivity, $user)
{
$errors = CBPActivity::callStaticMethod(
$arActivity['Type'],
'ValidateProperties',
[$arActivity['Properties'], $user]
);
$pref = '';
if (isset($arActivity['Properties']['Title']))
{
$pref =
Loc::getMessage('BPWTL_ERROR_MESSAGE_PREFIX', ['#TITLE#' => $arActivity['Properties']['Title']])
. ' '
;
}
foreach ($errors as $i => $e)
{
$errors[$i]['message'] = $pref . $e['message'];
$errors[$i]['activityName'] = $arActivity['Name'];
}
if (array_key_exists('Children', $arActivity) && count($arActivity['Children']) > 0)
{
$bFirst = true;
$childrenErrors = [];
foreach ($arActivity['Children'] as $arChildActivity)
{
if (!isset($arChildActivity['Activated']) || $arChildActivity['Activated'] !== 'N')
{
$childErrors = CBPActivity::callStaticMethod(
$arActivity['Type'],
'ValidateChild',
[$arChildActivity['Type'], $bFirst]
);
foreach ($childErrors as $i => $e)
{
$childErrors[$i]['message'] = $pref . $e['message'];
$childErrors[$i]['activityName'] = $arActivity['Name'];
}
if ($childErrors)
{
$childrenErrors[] = $childErrors;
}
$bFirst = false;
$validateErrors = $this->validateTemplate($arChildActivity, $user);
if ($validateErrors)
{
$childrenErrors[] = $validateErrors;
}
}
}
$errors = array_merge($errors, ...$childrenErrors);
}
return $errors;
}