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