• Модуль: controller
  • Путь к файлу: ~/bitrix/modules/controller/classes/mysql/controlleragent.php
  • Класс: CControllerAgent
  • Вызов: CControllerAgent::_OrderBy
static function _OrderBy($arOrder, $arFields, $obUserFieldsSql = null)
{
	$arOrderBy = array();
	if (is_array($arOrder))
	{
		foreach ($arOrder as $by => $order)
		{
			$by = mb_strtoupper($by);
			$order = (mb_strtolower($order) == 'desc'? 'desc': 'asc');

			if (
				isset($arFields[$by])
				&& isset($arFields[$by]["FIELD_TYPE"])
			)
				$arOrderBy[$by] = $arFields[$by]["FIELD_NAME"].' '.$order;
			elseif (
				isset($obUserFieldsSql)
				&& ($s = $obUserFieldsSql->GetOrder($by))
			)
				$arOrderBy[$by] = $s.' '.$order;
		}
	}

	if (count($arOrderBy))
		return "ORDER BY ".implode(", ", $arOrderBy);
	else
		return "";
}