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