• Модуль: extranet
  • Путь к файлу: ~/bitrix/modules/extranet/classes/general/extranet.php
  • Класс: CExtranet
  • Вызов: CExtranet::GetIntranetUsers
static function GetIntranetUsers()
{
	static $CACHE = false;

	if (!$CACHE)
	{
		$arIntranetUsers = array();

		$ttl = (defined("BX_COMP_MANAGED_CACHE") ? 2592000 : 600);
		$cache_id = 'users';
		$obCache = new CPHPCache;
		$cache_dir = '/bitrix/extranet/';

		if($obCache->InitCache($ttl, $cache_id, $cache_dir))
		{
			$tmpVal = $obCache->GetVars();
			$arIntranetUsers = $tmpVal['USERS'];
			unset($tmpVal);
		}
		else
		{
			global $CACHE_MANAGER;

			if (defined("BX_COMP_MANAGED_CACHE"))
			{
				$CACHE_MANAGER->StartTagCache($cache_dir);
				$CACHE_MANAGER->RegisterTag('intranet_users');
			}

			$rsUsers = CUser::GetList(
				'ID',
				'ASC',
				Array(
					"!UF_DEPARTMENT" => false
				),
				array(
					"FIELDS" => array("ID"),
					"SELECT" => array("UF_DEPARTMENT"),
				)
			);

			while($arUser = $rsUsers->Fetch())
			{
				$arIntranetUsers[] = $arUser["ID"];
			}

			if (defined("BX_COMP_MANAGED_CACHE"))
			{
				$CACHE_MANAGER->EndTagCache();
			}

			if($obCache->StartDataCache())
			{
				$obCache->EndDataCache(array(
					'USERS' => $arIntranetUsers,
				));
			}
		}

		$CACHE = $arIntranetUsers;
	}
	else
	{
		$arIntranetUsers = $CACHE;
	}

	return $arIntranetUsers;
}