- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/manager/task/template.php
- Класс: Bitrix\Tasks\Manager\Task\Template
- Вызов: Template::update
static function update($userId, $itemId, array $data, array $parameters = array('PUBLIC_MODE' => false))
{
$userId = Assert::expectIntegerPositive($userId, '$userId');
$itemId = Assert::expectIntegerPositive($itemId, '$itemId');
$errors = static::ensureHaveErrorCollection($parameters);
if(isset($parameters['PUBLIC_MODE']))
{
$data = static::filterData($data, array(), $errors);
}
$template = static::getTemplate($itemId);
if (isset($template['ID']) && (int)$template['ID'] > 0)
{
$templateData = $template;
}
else
{
$errors->add('ACCESS_DENIED.NO_TEMPLATE', 'Template not found');
return;
}
$prevReplicateData = Type::unserializeArray($templateData['REPLICATE_PARAMS']);
if(array_key_exists('REPLICATE_PARAMS', $data))
{
$times = intval($data['REPLICATE_PARAMS']['TIMES']);
$data['REPLICATE_PARAMS'] = Type::serializeArray($data['REPLICATE_PARAMS']);
}
else
{
$times = false; // times unchanged
}
// reset replication counter when TIMES was changed
if($times !== false && intval($prevReplicateData['TIMES']) != $times)
{
$data['TPARAM_REPLICATION_COUNT'] = 1;
}
$templateInstance = new \CTaskTemplates();
$templateInstance->update($itemId, $data);
$resultErrors = $templateInstance->getErrors();
if(!empty($resultErrors))
{
$errors->load($resultErrors);
}
}