- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/Site/Sections/AutomationSection.php
- Класс: BitrixIntranetSiteSectionsAutomationSection
- Вызов: AutomationSection::getSmartProcesses
static function getSmartProcesses(): array
{
$available = Loader::includeModule('crm');
$defaultItems = [];
$internalDynamicTypes = [];
$externalDynamicTypes = [];
if ($available)
{
$router = Container::getInstance()->getRouter();
$defaultItems[] = [
'TEXT' => Loc::getMessage('AUTOMATION_SECTION_CRM_DYNAMIC_DEFAULT_SUBTITLE'),
'URL' => $router->getTypeListUrl(),
];
$types = Container::getInstance()->getDynamicTypesMap();
$types->load([
'isLoadStages' => false,
'isLoadCategories' => false,
]);
$currentUser = CurrentUser::get();
$userPermissions = Container::getInstance()->getUserPermissions($currentUser->getId());
foreach ($types->getTypes() as $type)
{
if (!$userPermissions->canReadType($type->getEntityTypeId()))
{
continue;
}
$menuItem = [
'TEXT' => $type->getTitle(),
'URL' => $router->getItemListUrlInCurrentView($type->getEntityTypeId()),
];
if (CrmIntegrationIntranetManager::isEntityTypeInCustomSection($type->getEntityTypeId()))
{
$externalDynamicTypes[] = $menuItem;
}
else
{
$internalDynamicTypes[] = $menuItem;
}
}
}
return [
'id' => 'crm-dynamic',
'title' => Loc::getMessage('AUTOMATION_SECTION_CRM_DYNAMIC_ITEM_TITLE'),
'available' => $available,
'iconClass' => 'ui-icon intranet-automation-bp-icon',
'menuData' => [
'menu_item_id' => 'menu_crm_dynamic',
'top_menu_id' => 'top_menu_id_crm_dynamic',
'sub_menu' => [
[
'TEXT' => Loc::getMessage('AUTOMATION_SECTION_CRM_DYNAMIC_SUBTITLE_1'),
'URL' => '/crm/',
'ITEMS' => array_merge($externalDynamicTypes, $defaultItems),
],
[
'TEXT' => Loc::getMessage('AUTOMATION_SECTION_CRM_DYNAMIC_CRM_SUBTITLE'),
'URL' => '/crm/',
'ITEMS' => array_merge($internalDynamicTypes, $defaultItems),
]
],
],
];
}