• Модуль: search
  • Путь к файлу: ~/bitrix/modules/search/classes/general/search.php
  • Класс: CAllSearch
  • Вызов: CAllSearch::DeleteIndex
static function DeleteIndex($MODULE_ID, $ITEM_ID = false, $PARAM1 = false, $PARAM2 = false, $SITE_ID = false)
{
	$DB = CDatabase::GetModuleConnection('search');
	$bIncSites = false;
	$op = (mb_strpos($ITEM_ID, '%') !== false? '%=': '=');

	if ($PARAM1 !== false && $PARAM2 !== false)
	{
		$strSqlWhere = CSearch::__PrepareFilter(array(
			"MODULE_ID" => $MODULE_ID,
			$op."ITEM_ID" => $ITEM_ID,
			array(
				"=PARAM1" => $PARAM1,
				"PARAM2" => $PARAM2,
			),
			"SITE_ID" => $SITE_ID,
		), $bIncSites);
	}
	else
	{
		$strSqlWhere = CSearch::__PrepareFilter(array(
			"MODULE_ID" => $MODULE_ID,
			$op."ITEM_ID" => $ITEM_ID,
			"PARAM1" => $PARAM1,
			"PARAM2" => $PARAM2,
			"SITE_ID" => $SITE_ID,
		), $bIncSites);
	}

	$strSql = "
		SELECT sc.ID
		FROM b_search_content sc
			".($bIncSites? "INNER JOIN b_search_content_site scsite ON sc.ID=scsite.SEARCH_CONTENT_ID": "")."
		WHERE
		".$strSqlWhere."
	";

	$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(); }