- Модуль: documentgenerator
- Путь к файлу: ~/bitrix/modules/documentgenerator/lib/controller/document.php
- Класс: BitrixDocumentGeneratorControllerDocument
- Вызов: Document::getButtonTemplatesAction
public function getButtonTemplatesAction($moduleId, $provider, $value)
{
$result = [];
if(is_string($moduleId) && !empty($moduleId) && Loader::includeModule($moduleId))
{
if (!DataProviderManager::checkProviderName($provider, $moduleId))
{
$this->errorCollection->add([new Error('Wrong provider')]);
return $result;
}
$result = [
'documentList' => $this->getDocumentListUrl(),
'canEditTemplate' => Driver::getInstance()->getUserPermissions()->canModifyTemplates(),
'isDocumentsLimitReached' => Bitrix24Manager::isDocumentsLimitReached(),
];
if(Driver::getInstance()->getUserPermissions()->canModifyDocuments())
{
$result['templates'] = Converter::toJson()->process(TemplateTable::getListByClassName($provider, Driver::getInstance()->getUserId(), $value));
}
if (is_string($provider) && BitrixMainLoader::includeModule('intranet'))
{
$codeBuilder = ServiceLocator::getInstance()->get('documentgenerator.integration.intranet.binding.codeBuilder');
$result['intranetExtensions'] = BitrixIntranetBindingMenu::getMenuItems(
'crm_documents',
$codeBuilder->getMenuCode($moduleId, $provider, $value),
[
'context' => [
'ENTITY_ID' => $value
],
'inline' => true
]
);
if (!$result['intranetExtensions'])
{
unset($result['intranetExtensions']);
}
}
}
else
{
$this->errorCollection->add([new Error('Wrong moduleId')]);
}
return $result;
}