- Модуль: search
- Путь к файлу: ~/bitrix/modules/search/classes/general/search.php
- Класс: CAllSearch
- Вызов: CAllSearch::SetContentItemGroups
static function SetContentItemGroups($index_id, $arGroups)
{
$DB = CDatabase::GetModuleConnection('search');
$index_id = intval($index_id);
$arToInsert = array();
foreach ($arGroups as $group_code)
if($group_code <> '')
{
$arToInsert[$group_code] = $group_code;
}
//Read database
$rs = $DB->Query("
SELECT * FROM b_search_content_right
WHERE SEARCH_CONTENT_ID = ".$index_id."
", false, "File: ".__FILE__."
Line: ".__LINE__);
while ($ar = $rs->Fetch())
{
$group_code = $ar["GROUP_CODE"];
if (isset($arToInsert[$group_code]))
unset($arToInsert[$group_code]); //This already in DB
else
$DB->Query("
DELETE FROM b_search_content_right
WHERE
SEARCH_CONTENT_ID = ".$index_id."
AND GROUP_CODE = '".$DB->ForSQL($group_code)."'
", false, "File: ".__FILE__."
Line: ".__LINE__); //And this should be deleted
}
foreach ($arToInsert as $group_code)
{
$DB->Query("
INSERT INTO b_search_content_right
(SEARCH_CONTENT_ID, GROUP_CODE)
VALUES
(".$index_id.", '".$DB->ForSQL($group_code, 100)."')
", true, "File: ".__FILE__."
Line: ".__LINE__);
}
}