• Модуль: mobile
  • Путь к файлу: ~/bitrix/modules/mobile/classes/general/mobile_event.php
  • Класс: CMobileEvent
  • Вызов: CMobileEvent::onMobileMenuBuilt
static function onMobileMenuBuilt($data, $eventProvider = null)
{
	/**
	 * Tabs are not supported with web-version of menu
	 */
	if (!($eventProvider instanceof Component))
	{
		return $data;
	}

	/**
	 * @var  $eventProvider Component
	 */
	$imageDir = $eventProvider->getPath() . "/images/";
	$manager = new Manager();
	$active = array_keys($manager->getActiveTabs());
	$all = $manager->getAllTabIDs(true);
	$diff = array_diff($all, $active);
	$favorite = &$data[0]["items"];
	foreach ($diff as $tabId)
	{
		$tab = $manager->getTabInstance($tabId);
		if ($tab->shouldShowInMenu())
		{
			$item = $tab->getMenuData();
			if ($item["imageUrl"])
			{
				$item["imageUrl"] = $imageDir . $item["imageUrl"];
			}
			if (isset($item["sectionCode"]))
			{
				$count = count($data);
				for ($i = 0; $i < $count; $i++)
				{
					$section = &$data[$i];
					if (isset($section["code"]) && $section['code'] === $item['sectionCode'])
					{
						if (!isset($section["items"]))
						{
							$section["items"] = [];
						}

						array_unshift($section["items"], $item);
						break;
					}
				}
			}
			else
			{
				array_unshift($favorite, $item);
			}

		}
		else
		{
			foreach ($data as &$dataTab)
			{
				if (isset($dataTab['code']) && $tabId === $dataTab['code'])
				{
					$dataTab['hidden'] = true;
					break;
				}
			}
		}
	}

	return $data;
}