Example #1
0
 /**
  * Получить список пользователей с использованием фильтра
  *    Фильтр:
  *        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;
 }