• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/utils.php
  • Класс: CIntranetUtils
  • Вызов: CIntranetUtils::_GetEmployeesForSorting
static function _GetEmployeesForSorting($section_id, &$amount, &$start, &$arUserIDs, $arAccessUsers)
{
	if (self::$SECTIONS_SETTINGS_CACHE['DATA'][$section_id])
	{
		if (self::$SECTIONS_SETTINGS_CACHE['DATA'][$section_id]['UF_HEAD'])
		{
			if (!$arAccessUsers || in_array(self::$SECTIONS_SETTINGS_CACHE['DATA'][$section_id]['UF_HEAD'], $arAccessUsers))
			{
				if ($start > 0)
				{
					$start--;
				}
				else if ($amount > 0)
				{
					$arUserIDs[$section_id][] = self::$SECTIONS_SETTINGS_CACHE['DATA'][$section_id]['UF_HEAD'];
					$amount--;
				}
				else
				{
					return false;
				}
			}
		}

		if (self::$SECTIONS_SETTINGS_CACHE['DATA'][$section_id]['EMPLOYEES'])
		{
			foreach (self::$SECTIONS_SETTINGS_CACHE['DATA'][$section_id]['EMPLOYEES'] as $ID)
			{
				if ($ID == self::$SECTIONS_SETTINGS_CACHE['DATA'][$section_id]['UF_HEAD'])
					continue;

				if ($arAccessUsers && !in_array($ID, $arAccessUsers))
					continue;

				if ($start > 0)
				{
					$start--;
				}
				else if ($amount > 0)
				{
					$arUserIDs[$section_id][] = $ID;
					$amount--;
				}
				else
				{
					return false;
				}
			}
		}
	}

	if (self::$SECTIONS_SETTINGS_CACHE['TREE'][$section_id])
	{
		foreach (self::$SECTIONS_SETTINGS_CACHE['TREE'][$section_id] as $dpt)
		{
			if (!self::_GetEmployeesForSorting($dpt, $amount, $start, $arUserIDs, $arAccessUsers))
				return false;
		}
	}
	return true;
}