- Модуль: search
- Путь к файлу: ~/bitrix/modules/search/classes/general/search.php
- Класс: CAllSearch
- Вызов: CAllSearch::Update
static function Update($ID, $arFields)
{
$DB = CDatabase::GetModuleConnection('search');
$bUpdate = false;
if (array_key_exists("~DATE_CHANGE", $arFields))
{
$arFields["DATE_CHANGE"] = $arFields["~DATE_CHANGE"];
unset($arFields["~DATE_CHANGE"]);
}
elseif (array_key_exists("LAST_MODIFIED", $arFields))
{
$arFields["DATE_CHANGE"] = $arFields["LAST_MODIFIED"];
unset($arFields["LAST_MODIFIED"]);
}
elseif (array_key_exists("DATE_CHANGE", $arFields))
{
$arFields["DATE_CHANGE"] = $DB->FormatDate($arFields["DATE_CHANGE"], "DD.MM.YYYY HH:MI:SS", CLang::GetDateFormat());
}
if (BX_SEARCH_VERSION > 1)
unset($arFields["SEARCHABLE_CONTENT"]);
if (array_key_exists("SITE_ID", $arFields))
{
CSearch::UpdateSite($ID, $arFields["SITE_ID"]);
$bUpdate = true;
}
if (array_key_exists("PERMISSIONS", $arFields))
{
$arNewGroups = array();
foreach ($arFields["PERMISSIONS"] as $group_id)
{
if (is_numeric($group_id))
$arNewGroups[$group_id] = "G".intval($group_id);
else
$arNewGroups[$group_id] = $group_id;
}
CSearch::SetContentItemGroups($ID, $arNewGroups);
$bUpdate = true;
}
if (array_key_exists("PARAMS", $arFields))
{
CSearch::SetContentItemParams($ID, $arFields["PARAMS"]);
$bUpdate = true;
}
$strUpdate = $DB->PrepareUpdate("b_search_content", $arFields);
if ($strUpdate <> '')
{
$arBinds = Array();
if (is_set($arFields, "BODY"))
$arBinds["BODY"] = $arFields["BODY"];
if (is_set($arFields, "SEARCHABLE_CONTENT"))
$arBinds["SEARCHABLE_CONTENT"] = $arFields["SEARCHABLE_CONTENT"];
if (is_set($arFields, "TAGS"))
$arBinds["TAGS"] = $arFields["TAGS"];
$DB->QueryBind("UPDATE b_search_content SET ".$strUpdate." WHERE ID=".intval($ID), $arBinds);
$bUpdate = true;
}
if ($bUpdate)
CSearchFullText::getInstance()->update($ID, $arFields);
}