- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/controller/leftmenu.php
- Класс: BitrixIntranetControllerLeftMenu
- Вызов: LeftMenu::addStandartItemAction
public function addStandartItemAction()
{
$itemLink = $itemText = '';
if (isset($_POST['itemData']['text']))
{
$itemText = trim($_POST['itemData']['text']);
}
if (empty($itemText))
{
$error = Loc::getMessage('INTRANET_LEFT_MENU_SELF_ITEM_TEXT_ERROR');
}
if (isset($_POST['itemData']['link']))
{
$itemLink = trim($_POST['itemData']['link']);
if (!preg_match('~^/~i', $itemLink))
$error = Loc::getMessage('INTRANET_LEFT_MENU_SELF_ITEM_LINK_ERROR');
}
if (isset($_POST['itemData']['id']))
{
$itemId = trim($_POST['itemData']['id']);
}
else
{
$itemId = crc32($itemLink);
}
if (!empty($error))
{
$this->addError(new Error($error));
return null;
}
$newItem = array(
'TEXT' => $itemText,
'LINK' => $itemLink,
'ID' => $itemId
);
if (isset($_POST['itemData']['counterId']) && $_POST['itemData']['counterId'])
{
$newItem['COUNTER_ID'] = $_POST['itemData']['counterId'];
}
if (isset($_POST['itemData']['subLink']) && is_array($_POST['itemData']['subLink']))
{
$newItem['SUB_LINK'] = $_POST['itemData']['subLink']['URL'];
}
$standardItems = CUserOptions::GetOption('intranet', 'left_menu_standard_items_' . SITE_ID);
if (is_array($standardItems) && !empty($standardItems))
{
foreach ($standardItems as $item)
{
if ($item['LINK'] == $newItem['LINK'])
{
$this->addError(new Error(Loc::getMessage('INTRANET_LEFT_MENU_SELF_ITEM_DUBLICATE_ERROR')));
return null;
}
}
$standardItems[$itemId] = $newItem;
}
else
{
$standardItems = array($itemId => $newItem);
}
CUserOptions::SetOption('intranet', 'left_menu_standard_items_' . SITE_ID, $standardItems);
if (preg_match('~^/workgroups/group/([0-9]+)/$~i', $itemLink, $match))
{
$this->setGroupToFavorites($match[1], 'Y');
}
return [
'itemId' => $itemId,
];
}