• Модуль: search
  • Путь к файлу: ~/bitrix/modules/search/classes/general/search.php
  • Класс: CAllSearch
  • Вызов: CAllSearch::DeleteOld
static function DeleteOld($SESS_ID, $MODULE_ID = "", $SITE_ID = "")
{
	$DB = CDatabase::GetModuleConnection('search');

	$strFilter = "";
	if ($MODULE_ID != "")
		$strFilter .= " AND MODULE_ID = '".$DB->ForSql($MODULE_ID)."' ";

	$strJoin = "";
	if ($SITE_ID != "")
	{
		$strFilter .= " AND scsite.SITE_ID = '".$DB->ForSql($SITE_ID)."' ";
		$strJoin .= " INNER JOIN b_search_content_site scsite ON sc.ID=scsite.SEARCH_CONTENT_ID ";
	}

	if (!is_array($SESS_ID))
		$SESS_ID = array($SESS_ID);

	foreach ($SESS_ID as $key => $value)
		$SESS_ID[$key] = $DB->ForSql($value);

	$strSql = "
		SELECT ID
		FROM b_search_content sc
		".$strJoin."
		WHERE (UPD not in ('".implode("', '", $SESS_ID)."') OR UPD IS NULL)
		".$strFilter."
	";

	$arEvents = GetModuleEvents("search", "OnBeforeIndexDelete", true);

	$rs = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__); while ($ar = $rs->Fetch()) { foreach ($arEvents as $arEvent) ExecuteModuleEventEx($arEvent, array("SEARCH_CONTENT_ID = ".$ar["ID"])); $DB->Query("DELETE FROM b_search_content_param WHERE SEARCH_CONTENT_ID = ".$ar["ID"], false, "File: ".__FILE__."
Line: ".__LINE__); $DB->Query("DELETE FROM b_search_content_right WHERE SEARCH_CONTENT_ID = ".$ar["ID"], false, "File: ".__FILE__."
Line: ".__LINE__); $DB->Query("DELETE FROM b_search_content_site WHERE SEARCH_CONTENT_ID = ".$ar["ID"], false, "File: ".__FILE__."
Line: ".__LINE__); $DB->Query("DELETE FROM b_search_content_title WHERE SEARCH_CONTENT_ID = ".$ar["ID"], false, "File: ".__FILE__."
Line: ".__LINE__); $DB->Query("DELETE FROM b_search_tags WHERE SEARCH_CONTENT_ID = ".$ar["ID"], false, "File: ".__FILE__."
Line: ".__LINE__); CSearchFullText::getInstance()->deleteById($ar["ID"]); $DB->Query("DELETE FROM b_search_content WHERE ID = ".$ar["ID"], false, "File: ".__FILE__."
Line: ".__LINE__); } CSearchTags::CleanCache(); }