• Модуль: search
  • Путь к файлу: ~/bitrix/modules/search/classes/general/customrank.php
  • Класс: CSearchCustomRank
  • Вызов: CSearchCustomRank::NextUpdate
function NextUpdate()
{
	$DB = CDatabase::GetModuleConnection('search');

	$rs = $this->GetList(
		array(
			"SITE_ID" => "ASC"
		, "MODULE_ID" => "ASC"
		, "PARAM1" => "ASC"
		, "PARAM2" => "ASC"
		, "ITEM_ID" => "ASC"
		)
		, array(
			"APPLIED" => "N"
		)
	);
	if ($ar = $rs->Fetch())
	{
		$strSql = "
			UPDATE b_search_content
			SET CUSTOM_RANK=".intval($ar["RANK"])."
			WHERE CUSTOM_RANK<>".intval($ar["RANK"])."
			AND EXISTS (
				SELECT *
				FROM b_search_content_site scs
				WHERE scs.SEARCH_CONTENT_ID = b_search_content.ID
				AND scs.SITE_ID = '".$DB->ForSQL($ar["SITE_ID"])."'
			)
			AND MODULE_ID='".$DB->ForSQL($ar["MODULE_ID"])."'
			".($ar["PARAM1"] != ""? "AND PARAM1='".$DB->ForSQL($ar["PARAM1"])."'": "")."
			".($ar["PARAM2"] != ""? "AND PARAM2='".$DB->ForSQL($ar["PARAM2"])."'": "")."
			".($ar["ITEM_ID"] != ""? "AND ITEM_ID='".$DB->ForSQL($ar["ITEM_ID"])."'": "")."
		";
		$upd = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__); if ($upd) $upd = $this->Update($ar["ID"], array("APPLIED" => "Y")); else $this->LAST_ERROR = GetMessage("customrank_error_update")."
"; } if ($this->LAST_ERROR == "") { $res = array("DONE" => 0, "TODO" => 0); $strSql = " SELECT APPLIED,COUNT(*) C FROM b_search_custom_rank GROUP BY APPLIED "; $rs = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__); while ($ar = $rs->Fetch()) if ($ar["APPLIED"] == "Y") $res["DONE"] = $ar["C"]; elseif ($ar["APPLIED"] == "N") $res["TODO"] = $ar["C"]; return $res; } else { return false; } }