• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/updatetools.php
  • Класс: UpdateTools
  • Вызов: UpdateTools::CheckUpdates
static function CheckUpdates()
{
	global $USER;

	if(MainApplication::getInstance()->getLicense()->isDemoKey())
	{
		return;
	}

	$days_check = intval(COption::GetOptionString('main', 'update_autocheck'));
	if($days_check > 0)
	{
		CUtil::SetPopupOptions('update_tooltip', array('display'=>'on'));

		$update_res = unserialize(COption::GetOptionString('main', '~update_autocheck_result'), ['allowed_classes' => false]);
		if(!is_array($update_res))
			$update_res = array("check_date"=>0, "result"=>false);

		if(time() > $update_res["check_date"]+$days_check*86400)
		{
			if($USER->CanDoOperation('install_updates'))
			{
				require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/update_client.php");

				$result = CUpdateClient::IsUpdateAvailable($arModules, $strError);

				$modules = array();
				foreach($arModules as $module)
					$modules[] = $module["@"]["ID"];

				if($strError <> '' && COption::GetOptionString('main', 'update_stop_autocheck', 'N') == 'Y')
					COption::SetOptionString('main', 'update_autocheck', '');

				COption::SetOptionString('main', '~update_autocheck_result', serialize(array(
					"check_date"=>time(),
					"result"=>$result,
					"error"=>$strError,
					"modules"=>$modules,
				)));
			}
		}
	}
}