• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/component/elementlist.php
  • Класс: BitrixIblockComponentElementList
  • Вызов: ElementList::prepareElementSortRow
protected function prepareElementSortRow(array $params, array $orderRow, array $default): array
{
	$order = (isset($orderRow['ORDER']) ? trim($orderRow['ORDER']) : '');
	$direction = (isset($orderRow['DIRECTION']) ? trim($orderRow['DIRECTION']) : '');
	if (empty($params) || $order === '' || $direction === '')
	{
		return $params;
	}
	if (empty($params[$order]))
	{
		$params[$order] = $default['ORDER'] ?? 'SORT';
	}
	$params[$order] = strtoupper($params[$order]);

	if ($params[$order] === 'ID' && !empty($params[$direction]) && is_array($params[$direction]))
	{
		Collection::normalizeArrayValuesByInt($params[$direction], false);
		if (empty($params[$direction]))
		{
			$params[$direction] = $default['DIRECTION'] ?? 'desc';
		}
	}
	else
	{
		if (empty($params[$direction]) || !preg_match(self::SORT_ORDER_MASK, $params[$direction]))
		{
			$params[$direction] = $default['DIRECTION'] ?? 'desc';
		}
	}

	return $params;
}