• Модуль: search
  • Путь к файлу: ~/bitrix/modules/search/classes/general/search.php
  • Класс: CSearchSQLHelper
  • Вызов: CSearchSQLHelper::_CallbackURL
function _CallbackURL($field_name, $operation, $field_value)
{
	global $DB;

	if (is_array($field_value))
		$sql_values = array_map(array($DB, "ForSQL"), array_filter($field_value));
	elseif ($field_value !== false)
		$sql_values = array($DB->ForSQL($field_value));
	else
		$sql_values = array();

	$strSql = "";
	if (!empty($sql_values))
	{
		switch ($operation)
		{
		case "I":
		case "E":
		case "S":
		case "M":
			foreach ($sql_values as $url_i)
			{
				$arSQL[] = $this->strSearchContentAlias.".URL LIKE '".$url_i."'";
				$arSQL[] = "scsite.URL LIKE '".$url_i."'";
			}
			$strSql = "(".implode(") OR (", $arSQL).")";
			$this->bIncSites = true;
			break;
		case "NI":
		case "N":
		case "NS":
		case "NM":
			$arSQL = array();
			foreach ($sql_values as $url_i)
			{
				$arSQL[] = $this->strSearchContentAlias.".URL NOT LIKE '".$url_i."'";
				$arSQL[] = "scsite.URL NOT LIKE '".$url_i."'";
			}
			$strSql = "(".implode(") AND (", $arSQL).")";
			$this->bIncSites = true;
			break;
		default:
			break;
		}
	}

	if ($strSql)
		return "(".$strSql.")";
	else
		return "";
}