• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/binding/menu.php
  • Класс: BitrixIntranetBindingis
  • Вызов: is::processMenuItemHit
static function processMenuItemHit($bindingId, $menuItemId): void
{
	if (self::getUserId() && is_string($bindingId) && is_string($menuItemId))
	{
		if(mb_strpos($bindingId, ':'))
		{
			[$sectionCode, $menuCode] = explode(':', $bindingId);
			$items = self::getMenuItems($sectionCode, $menuCode);
			if($items)
			{
				$itemsIds = self::getMenuItemsIds($items);
				$options = CUserOptions::getOption('intranet', self::USER_OPTION_LOG_CODE);
				// increment use count by specific id
				if(!is_array($options))
				{
					$options = [];
				}
				if(!isset($options[$bindingId]))
				{
					$options[$bindingId] = [];
				}
				if(!isset($options[$bindingId][$menuItemId]))
				{
					$options[$bindingId][$menuItemId] = 0;
				}
				$options[$bindingId][$menuItemId] = (int)$options[$bindingId][$menuItemId];
				$options[$bindingId][$menuItemId]++;
				// validate, sort, save
				$options[$bindingId] = array_intersect_key($options[$bindingId], array_flip($itemsIds));
				asort($options[$bindingId], SORT_NUMERIC);
				$options[$bindingId] = array_reverse($options[$bindingId], true);
				CUserOptions::setOption('intranet', self::USER_OPTION_LOG_CODE, $options);
			}
		}
	}
}