Example #1
0
 /**
  * Список топиков по фильтру
  *
  * @param  array $aFilter Фильтр
  * @param  int $iPage Номер страницы
  * @param  int $iPerPage Количество элементов на страницу
  * @param  array|null $aAllowData Список типов данных для подгрузки в топики
  * @return array('collection'=>array,'count'=>int)
  */
 public function GetTopicsByFilter($aFilter, $iPage = 1, $iPerPage = 10, $aAllowData = null)
 {
     if (!is_numeric($iPage) or $iPage <= 0) {
         $iPage = 1;
     }
     $s = serialize($aFilter);
     if (false === ($data = $this->Cache_Get("topic_filter_{$s}_{$iPage}_{$iPerPage}"))) {
         $data = array('collection' => $this->oMapperTopic->GetTopics($aFilter, $iCount, $iPage, $iPerPage), 'count' => $iCount);
         $this->Cache_Set($data, "topic_filter_{$s}_{$iPage}_{$iPerPage}", array('topic_update', 'topic_new'), 60 * 60 * 24 * 3);
     }
     $data['collection'] = $this->GetTopicsAdditionalData($data['collection'], $aAllowData);
     return $data;
 }
Example #2
0
 /**
  * Список топиков по фильтру
  *
  * @param  array      $aFilter       Фильтр
  * @param  int        $iPage         Номер страницы
  * @param  int        $iPerPage      Количество элементов на страницу
  * @param  array|null $aAllowData    Список типов данных для подгрузки в топики
  *
  * @return array('collection'=>array,'count'=>int)
  */
 public function GetTopicsByFilter($aFilter, $iPage = 1, $iPerPage = 10, $aAllowData = null)
 {
     if (!is_numeric($iPage) || $iPage <= 0) {
         $iPage = 1;
     }
     $sCacheKey = 'topic_filter_' . serialize($aFilter) . "_{$iPage}_{$iPerPage}";
     if (false === ($data = E::ModuleCache()->Get($sCacheKey))) {
         $data = array('collection' => $this->oMapper->GetTopics($aFilter, $iCount, $iPage, $iPerPage), 'count' => $iCount);
         E::ModuleCache()->Set($data, $sCacheKey, array('topic_update', 'topic_new'), 'P1D');
     }
     if ($data['collection']) {
         $data['collection'] = $this->GetTopicsAdditionalData($data['collection'], $aAllowData);
     }
     return $data;
 }