- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/controller/leftmenu.php
- Класс: BitrixIntranetControllerLeftMenu
- Вызов: LeftMenu::addSelfItemAction
public function addSelfItemAction()
{
$itemLink = $itemText = '';
if (!isset($_POST['itemData']))
$error = Loc::getMessage('INTRANET_LEFT_MENU_SELF_ITEM_UNKNOWN_ERROR');
if (isset($_POST['itemData']['text']))
{
$itemText = trim($_POST['itemData']['text']);
$itemText = BitrixMainTextEmoji::encode($itemText);
}
if (empty($itemText))
{
$error = Loc::getMessage('INTRANET_LEFT_MENU_SELF_ITEM_EMPTY_ERROR');
}
if (isset($_POST['itemData']['link']))
{
$itemLink = trim($_POST['itemData']['link']);
if (!preg_match('~^[/|http]~i', $itemLink))
$error = Loc::getMessage('INTRANET_LEFT_MENU_SELF_ITEM_LINK_ERROR');
}
if (!empty($error))
{
$this->addError(new Error($error));
return null;
}
$itemID = crc32($itemLink);
$newItem = array(
'TEXT' => $itemText,
'LINK' => $itemLink,
'ID' => $itemID,
'NEW_PAGE' => (
isset($_POST['itemData']['openInNewPage']) && $_POST['itemData']['openInNewPage'] == 'Y'
? 'Y'
: 'N'
)
);
$selfItems = CUserOptions::GetOption('intranet', 'left_menu_self_items_' . SITE_ID);
if (is_array($selfItems) && !empty($selfItems))
{
foreach ($selfItems as $item)
{
if ($item["LINK"] == $newItem["LINK"])
{
$this->addError(new Error(Loc::getMessage("INTRANET_LEFT_MENU_SELF_ITEM_DUBLICATE_ERROR")));
return null;
}
}
$selfItems[] = $newItem;
}
else
{
$selfItems = array($newItem);
}
CUserOptions::SetOption("intranet", "left_menu_self_items_" . SITE_ID, $selfItems);
return [
"itemId" => crc32($itemLink),
];
}