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

}