- Модуль: search
- Путь к файлу: ~/bitrix/modules/search/classes/general/search.php
- Класс: CAllSearch
- Вызов: CAllSearch::SetContentItemParams
static function SetContentItemParams($index_id, $arParams)
{
$DB = CDatabase::GetModuleConnection('search');
$index_id = intval($index_id);
$arToInsert = array();
if (is_array($arParams))
{
foreach ($arParams as $k1 => $v1)
{
$name = trim($k1);
if($name <> '')
{
$sql_name = "'".$DB->ForSQL($name, 100)."'";
if(!is_array($v1))
{
$v1 = array($v1);
}
foreach($v1 as $v2)
{
$value = trim($v2);
if($value <> '')
{
$sql_value = "'".$DB->ForSQL($value, 100)."'";
$key = md5($sql_name).md5($sql_value);
$arToInsert[$key] = "
INSERT INTO b_search_content_param
(SEARCH_CONTENT_ID, PARAM_NAME, PARAM_VALUE)
VALUES
(".$index_id.", ".$sql_name.", ".$sql_value.")
";
}
}
}
}
}
if (empty($arToInsert))
{
$DB->Query("
DELETE FROM b_search_content_param
WHERE
SEARCH_CONTENT_ID = ".$index_id."
", false, "File: ".__FILE__."
Line: ".__LINE__);
}
else
{
$rs = $DB->Query("
SELECT PARAM_NAME, PARAM_VALUE
FROM b_search_content_param
WHERE SEARCH_CONTENT_ID = ".$index_id."
", false, "File: ".__FILE__."
Line: ".__LINE__);
while ($ar = $rs->Fetch())
{
$sql_name = "'".$DB->ForSQL($ar["PARAM_NAME"], 100)."'";
$sql_value = "'".$DB->ForSQL($ar["PARAM_VALUE"], 100)."'";
$key = md5($sql_name).md5($sql_value);
if (array_key_exists($key, $arToInsert))
{
unset($arToInsert[$key]);
}
else
{
$DB->Query($s = "
DELETE FROM b_search_content_param
WHERE
SEARCH_CONTENT_ID = ".$index_id."
AND PARAM_NAME = ".$sql_name."
AND PARAM_VALUE = ".$sql_value."
", false, "File: ".__FILE__."
Line: ".__LINE__);
}
}
}
foreach ($arToInsert as $sql)
$DB->Query($sql, false, "File: ".__FILE__."
Line: ".__LINE__);
}