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