/** * Возвращает список пользователей по фильтру * * @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; }
/** * Возвращает список пользователей по фильтру * * @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; }
/** * Возвращает список пользователей по фильтру * * @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; }