示例#1
0
 /**
  * Возвращает список пользователей по фильтру
  *
  * @param array $aFilter	Фильтр
  * @param array $aOrder	Сортировка
  * @param int $iCurrPage	Номер страницы
  * @param int $iPerPage	Количество элментов на страницу
  * @param array $aAllowData	Список типо данных для подгрузки к пользователям
  * @return array('collection'=>array,'count'=>int)
  */
 public function GetUsersByFilter($aFilter, $aOrder, $iCurrPage, $iPerPage, $aAllowData = null)
 {
     $sKey = "user_filter_" . serialize($aFilter) . serialize($aOrder) . "_{$iCurrPage}_{$iPerPage}";
     if (false === ($data = $this->Cache_Get($sKey))) {
         $data = array('collection' => $this->oMapper->GetUsersByFilter($aFilter, $aOrder, $iCount, $iCurrPage, $iPerPage), 'count' => $iCount);
         $this->Cache_Set($data, $sKey, array("user_update", "user_new"), 60 * 60 * 24 * 2);
     }
     $data['collection'] = $this->GetUsersAdditionalData($data['collection'], $aAllowData);
     return $data;
 }
示例#2
0
 /**
  * Возвращает список пользователей по фильтру
  *
  * @param   array $aFilter    - Фильтр
  * @param   array $aOrder     - Сортировка
  * @param   int   $iCurrPage  - Номер страницы
  * @param   int   $iPerPage   - Количество элментов на страницу
  * @param   array $aAllowData - Список типо данных для подгрузки к пользователям
  *
  * @return  array('collection'=>array,'count'=>int)
  */
 public function GetUsersByFilter($aFilter, $aOrder, $iCurrPage, $iPerPage, $aAllowData = null)
 {
     $sCacheKey = "user_filter_" . serialize($aFilter) . serialize($aOrder) . "_{$iCurrPage}_{$iPerPage}";
     if (false === ($data = E::ModuleCache()->Get($sCacheKey))) {
         $data = array('collection' => $this->oMapper->GetUsersByFilter($aFilter, $aOrder, $iCount, $iCurrPage, $iPerPage), 'count' => $iCount);
         E::ModuleCache()->Set($data, $sCacheKey, array('user_update', 'user_new'), 'P1D');
     }
     if ($data['collection']) {
         $data['collection'] = $this->GetUsersAdditionalData($data['collection'], $aAllowData);
     }
     return $data;
 }
示例#3
0
 /**
  * Возвращает список пользователей по фильтру
  *
  * @param array $aFilter Фильтр
  * @param array $aOrder Сортировка
  * @param int $iCurrPage Номер страницы
  * @param int $iPerPage Количество элментов на страницу
  * @param array $aAllowData Список типо данных для подгрузки к пользователям
  * @return array('collection'=>array,'count'=>int)
  */
 public function GetUsersByFilter($aFilter, $aOrder, $iCurrPage, $iPerPage, $aAllowData = null)
 {
     $sKey = "user_filter_" . serialize($aFilter) . serialize($aOrder) . "_{$iCurrPage}_{$iPerPage}";
     if (false === ($data = $this->Cache_Get($sKey))) {
         $data = array('collection' => $this->oMapper->GetUsersByFilter($aFilter, $aOrder, $iCount, $iCurrPage, $iPerPage), 'count' => $iCount);
         /**
          * Если есть фильтр по "кто онлайн", то уменьшаем время кеширования до 10 минут
          */
         $iTimeCache = isset($aFilter['date_last_more']) ? 60 * 10 : 60 * 60 * 24 * 2;
         $this->Cache_Set($data, $sKey, array("user_update", "user_new"), $iTimeCache);
     }
     $data['collection'] = $this->GetUsersAdditionalData($data['collection'], $aAllowData);
     return $data;
 }