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