• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/handlers.php
  • Класс: CIntranetEventHandlers
  • Вызов: CIntranetEventHandlers::onRestAppDelete
static function onRestAppDelete($params)
{
	if (!isset($params["APP_ID"]) || !BitrixMainLoader::includeModule("rest"))
		return;

	$dbRes = BitrixRestAppTable::getList(array(
		'filter' => array(
			'=ID' => $params["APP_ID"]
		),
		'select' => array('ID', 'CODE')
	));

	if ($appInfo = $dbRes->fetch())
	{
		$itemId =  crc32(SITE_DIR."marketplace/app/".$appInfo["ID"]."/");
		$itemIdCode =  crc32(SITE_DIR."marketplace/app/".$appInfo["CODE"]."/");

		$adminOption = COption::GetOptionString("intranet", "left_menu_items_marketplace_".SITE_ID);

		if (!empty($adminOption))
		{
			$adminOption = unserialize($adminOption, ["allowed_classes" => false]);
			foreach ($adminOption as $key => $item)
			{
				if ($item["ID"] == $itemId || $item['ID'] == $itemIdCode)
				{
					unset($adminOption[$key]);
					if (empty($adminOption))
					{
						COption::RemoveOption("intranet", "left_menu_items_marketplace_".SITE_ID);
						break;
					}
					else
					{
						COption::SetOptionString("intranet", "left_menu_items_marketplace_".SITE_ID, serialize($adminOption), false, SITE_ID);
					}
				}
			}
		}

		if (defined("BX_COMP_MANAGED_CACHE"))
		{
			global $CACHE_MANAGER;
			$CACHE_MANAGER->ClearByTag("bitrix24_left_menu");
		}
	}
}