- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/controller/leftmenu.php
- Класс: BitrixIntranetControllerLeftMenu
- Вызов: LeftMenu::setPresetAction
public function setPresetAction()
{
global $USER;
if (
!isset($_POST['preset'])
|| !in_array($_POST['preset'], array('social', 'crm', 'tasks', 'sites'))
|| !isset($_POST['mode'])
)
{
$this->addError(new Error(Loc::getMessage('INTRANET_LEFT_MENU_PRESET_ERROR')));
return null;
}
$res = [];
if ($_POST['mode'] == 'global' && $this->isCurrentUserAdmin())
{
Option::set('intranet', 'left_menu_preset', $_POST['preset'], false, SITE_ID);
$event = new Event(
'intranet',
'onAfterChangeLeftMenuPreset',
[
'SITE_ID' => SITE_ID,
'VALUE' => $_POST['preset'],
]
);
EventManager::getInstance()->send($event);
}
else
{
CUserOptions::SetOption('intranet', 'left_menu_preset_' . SITE_ID, $_POST['preset']);
CUserOptions::DeleteOption('intranet', 'left_menu_first_page_' . SITE_ID);
// CUserOptions::DeleteOption('intranet', 'left_menu_self_items_'.$siteID);
// CUserOptions::DeleteOption('intranet', 'left_menu_standard_items_'.$siteID);
CUserOptions::DeleteOption('intranet', $this->getItemsSortOptionName());
}
$firstPageUrl = SITE_DIR . 'stream/';
switch ($_POST['preset'])
{
case 'tasks':
$firstPageUrl = SITE_DIR . 'company/personal/user/'
. ($_POST['mode'] == 'global' ? '#USER_ID#' : $USER->GetID()) . '/tasks/'
;
break;
case 'crm':
if (Loader::includeModule('crm'))
{
$firstPageUrl = BitrixCrmSettingsEntityViewSettings::getDefaultPageUrl();
}
break;
case 'sites':
$firstPageUrl = SITE_DIR . 'sites/';
break;
}
if ($firstPageUrl)
{
if ($_POST['mode'] == 'global' && $this->isCurrentUserAdmin())
{
Option::set('intranet', 'left_menu_first_page', $firstPageUrl, false, SITE_ID);
}
else
{
CUserOptions::SetOption('intranet', 'left_menu_first_page_' . SITE_ID, $firstPageUrl);
}
$res['url'] = str_replace('#USER_ID#', $USER->GetID(), $firstPageUrl);
}
if($_POST['mode'] === 'global' && ModuleManager::isModuleInstalled('bitrix24'))
{
$_SESSION['B24_SHOW_DEMO_LICENSE_HINT'] = 1;
}
$showPresetPopup = Option::get('intranet', 'show_menu_preset_popup', 'N') == 'Y';
if ($showPresetPopup)
{
Option::set('intranet', 'show_menu_preset_popup', 'N');
}
return $res;
}