• Модуль: seo
  • Путь к файлу: ~/bitrix/modules/seo/classes/general/seo_keywords.php
  • Класс: CSeoKeywords
  • Вызов: CSeoKeywords::GetList
static function GetList($arOrder, $arFilter)
{
	global $DB;
	
	$arAllFields = array('ID', 'URL', 'SITE_ID', 'KEYWORDS');
	
	$arWhere = array();
	
	foreach ($arFilter as $key => $value)
	{
		if (in_array($key, $arAllFields))
		{
			switch ($key)
			{
				case 'ID':
					$arWhere[] = 'ID=''.intval($value).''';
				break;
				
				case 'SITE_ID':
					$arWhere[] = 'SITE_ID=''.$DB->ForSql($value).''';
				break;
				
				case 'URL':
					if (array_key_exists('URL_EXACT_MATCH', $arFilter) && $arFilter['URL_EXACT_MATCH'] == 'N')
						$arWhere[] = 'URL LIKE ''.$DB->ForSql($value).'%'';
					else
						$arWhere[] = 'URL=''.$DB->ForSql($value).''';
				break;
				
				case 'KEYWORDS':
					$arWhere[] = 'KEYWORDS LIKE '%'.$DB->ForSql($value).'%'';
				break;
			}
		}
	}
	
	$strWhere = '';
	if (count($arWhere) > 0)
		$strWhere = 'WHERE '.implode(' AND ', $arWhere);
	
	$strOrder = '';
	foreach ($arOrder as $key => $dir)
	{
		$dir = ToUpper($dir);
		$key = ToUpper($key);
		
		if ($dir != 'DESC') $dir = 'ASC';
	
		if (in_array($key, $arAllFields))
		{
			$strOrder .= ($strOrder == '' ? '' : ', ').$DB->ForSql($key).' '.$dir;
		}
		
	}
	if ($strOrder != '') $strOrder = 'ORDER BY '.$strOrder;
	
	$query = 'SELECT * FROM b_seo_keywords ';
	$query .= $strWhere.' ';
	$query .= $strOrder;

	return $DB->Query($query);
}