/** * Список топиков по фильтру * * @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; }
/** * Список топиков по фильтру * * @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; }