- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/site.php
- Класс: CAllSite
- Вызов: CAllSite::Delete
static function Delete($ID)
{
/** @global CMain $APPLICATION */
global $DB, $APPLICATION, $CACHE_MANAGER;
$APPLICATION->ResetException();
foreach(GetModuleEvents("main", "OnBeforeLangDelete", true) as $arEvent)
{
if(ExecuteModuleEventEx($arEvent, array($ID))===false)
{
$err = GetMessage("MAIN_BEFORE_DEL_ERR1").' '.$arEvent['TO_NAME'];
if($ex = $APPLICATION->GetException())
$err .= ': '.$ex->GetString();
$APPLICATION->throwException($err);
return false;
}
}
foreach(GetModuleEvents("main", "OnBeforeSiteDelete", true) as $arEvent)
{
if(ExecuteModuleEventEx($arEvent, array($ID))===false)
{
$err = GetMessage("MAIN_BEFORE_DEL_ERR1").' '.$arEvent['TO_NAME'];
if($ex = $APPLICATION->GetException())
$err .= ': '.$ex->GetString();
$APPLICATION->throwException($err);
return false;
}
}
foreach(GetModuleEvents("main", "OnLangDelete", true) as $arEvent)
ExecuteModuleEventEx($arEvent, array($ID));
foreach(GetModuleEvents("main", "OnSiteDelete", true) as $arEvent)
ExecuteModuleEventEx($arEvent, array($ID));
if(!$DB->Query("DELETE FROM b_event_message_site WHERE SITE_ID='".$DB->ForSQL($ID, 2)."'"))
return false;
if(!$DB->Query("DELETE FROM b_lang_domain WHERE LID='".$DB->ForSQL($ID, 2)."'"))
return false;
if(CACHED_b_lang_domain!==false)
$CACHE_MANAGER->CleanDir("b_lang_domain");
if(!$DB->Query("UPDATE b_event_message SET LID=NULL WHERE LID='".$DB->ForSQL($ID, 2)."'"))
return false;
if(!$DB->Query("DELETE FROM b_site_template WHERE SITE_ID='".$DB->ForSQL($ID, 2)."'"))
return false;
if(CACHED_b_site_template!==false)
$CACHE_MANAGER->Clean("b_site_template");
$result = $DB->Query("DELETE FROM b_lang WHERE LID='".$DB->ForSQL($ID, 2)."'", true);
if(CACHED_b_lang!==false)
$CACHE_MANAGER->CleanDir("b_lang");
SiteTable::cleanCache();
MainSiteDomainTable::cleanCache();
return $result;
}