/** * Получить список пользователей с использованием фильтра * Фильтр: * login => точный логин * like => начальные буквы логина * admin => администраторы * * @param int $iCount * @param int $iCurrPage * @param int $iPerPage * @param array $aFilter * @param array $aSort * @return array */ public function GetUserList(&$iCount, $iCurrPage, $iPerPage, $aFilter = array(), $aSort = array()) { $filter = serialize($aFilter); $sort = serialize($aSort); $sCacheKey = 'adm_user_list_' . $filter . '_' . $sort . '_' . $iCurrPage . '_' . $iPerPage; if (false === ($data = $this->Cache_Get($sCacheKey))) { $data = array('collection' => $this->oMapper->GetUserList($iCount, $iCurrPage, $iPerPage, $aFilter, $aSort), 'count' => $iCount); if ($data['count']) { $aUserId = array(); foreach ($data['collection'] as $oUser) { $aUserId[] = $oUser->getId(); } $aSessions = $this->User_GetSessionsByArrayId($aUserId); foreach ($data['collection'] as $oUser) { if (isset($aSessions[$oUser->getId()])) { $oUser->setSession($aSessions[$oUser->getId()]); } else { $oUser->setSession(null); // или $oUser->setSession(new UserEntity_Session()); } } } $this->Cache_Set($data, $sCacheKey, array('user_update', 'user_new'), 60 * 15); } return $data; }