• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/util.php
  • Класс: BitrixIntranetUtil
  • Вызов: Util::getEmployeesList
static function getEmployeesList($params = array())
{
	$result = array();

	if (
		(
			empty($params["SITE_ID"])
			&& empty($params["DEPARTMENTS"])
		)
		|| !ModuleManager::isModuleInstalled('intranet')
	)
	{
		return $result;
	}

	$userResult = false;
	$allUsers = false;

	if (!empty($params["SITE_ID"]))
	{
		$siteRootDepartmentId = intval(Option::get('main', 'wizard_departament', false, $params["SITE_ID"]));
		if ($siteRootDepartmentId <= 0)
		{
			$allUsers = true;

			$structureIblockId = Option::get('intranet', 'iblock_structure', 0);
			if (
				Loader::includeModule('iblock')
				&& $structureIblockId > 0
			)
			{
				$filter = array(
					"=ACTIVE" => "Y",
					"CONFIRM_CODE" => false,
					"!=UF_DEPARTMENT" => false
				);

				if (!empty($params["SKIP"]))
				{
					$filter['!ID'] = intval($params["SKIP"]);
				}

				$userResult = BitrixMainUserTable::getList(array(
					'order' => array(),
					'filter' => $filter,
					'select' => array("ID", "EMAIL", "NAME", "LAST_NAME", "SECOND_NAME", "LOGIN")
				));
			}
		}
		else
		{
			if (!isset($params["DEPARTMENTS"]))
			{
				$params["DEPARTMENTS"] = array();
			}
			$params["DEPARTMENTS"][] = $siteRootDepartmentId;
		}
	}

	if (
		!$allUsers
		&& !empty($params["DEPARTMENTS"])
	)
	{
		$userResult = BitrixIntranetUtil::getDepartmentEmployees(array(
			'DEPARTMENTS' => $params["DEPARTMENTS"],
			'RECURSIVE' => 'Y',
			'ACTIVE' => 'Y',
			'CONFIRMED' => 'Y',
			'SKIP' => (!empty($params["SKIP"]) ? $params["SKIP"] : false),
			'SELECT' => array("ID", "EMAIL", "NAME", "LAST_NAME", "SECOND_NAME", "LOGIN")
		));
	}

	if ($userResult)
	{
		while ($user = $userResult->fetch())
		{
			$result[$user["ID"]] = array(
				"ID" => $user["ID"],
				"NAME_FORMATTED" => CUser::formatName(CSite::getNameFormat(null, $params["SITE_ID"]), $user, true),
				"EMAIL" => $user["EMAIL"]
			);
		}
	}

	return $result;
}