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(strlen($strUpdate) > 0) { $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); }