• Модуль: documentgenerator
  • Путь к файлу: ~/bitrix/modules/documentgenerator/lib/controller/template.php
  • Класс: BitrixDocumentGeneratorControllerTemplate
  • Вызов: Template::updateAction
public function updateAction(BitrixDocumentGeneratorTemplate $template, array $fields, CRestServer $restServer = null)
{
	// do not let change moduleId in rest scope
	if($restServer)
	{
		unset($fields['moduleId']);
		$fileId = $this->uploadFile($fields[static::FILE_PARAM_NAME], [
			'required' => false,
			'isTemplate' => true,
		]);
		if($fileId > 0)
		{
			$fields['fileId'] = $fileId;
		}
		elseif(isset($fields['fileId']))
		{
			unset($fields['fileId']);
		}
		unset($fields[static::FILE_PARAM_NAME]);
	}
	elseif(!$this->includeModule($fields['moduleId']))
	{
		return null;
	}
	$fields['bodyType'] = Docx::class;
	$fields['id'] = $template->ID;
	$converter = new Converter(Converter::TO_UPPER | Converter::KEYS | Converter::TO_SNAKE);
	$templateData = $converter->process($fields);
	if(!isset($fields['users']) || !is_array($fields['users']))
	{
		$fields['users'] = [];
	}
	if(!isset($fields['providers']) || !is_array($fields['providers']))
	{
		$fields['providers'] = [];
	}
	$result = $this->add($templateData, $fields['providers'], $fields['users']);
	if($result->isSuccess())
	{
		if(!empty($fields['providers']))
		{
			$moduleId = $result->getData()['template']['moduleId'];
			foreach($fields['providers'] as $provider)
			{
				Driver::extendTemplateProviders($moduleId, $provider);
			}
		}
		return $result->getData();
	}
	else
	{
		$this->errorCollection = $result->getErrorCollection();
		return null;
	}
}