- Модуль: 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;
}
}