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