Example #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 GetBlogsByFilter($aFilter, $aOrder, $iCurrPage, $iPerPage, $aAllowData = null)
 {
     if (is_null($aAllowData)) {
         $aAllowData = array('owner' => array(), 'relation_user');
     }
     $sKey = "blog_filter_" . serialize($aFilter) . serialize($aOrder) . "_{$iCurrPage}_{$iPerPage}";
     if (false === ($data = $this->Cache_Get($sKey))) {
         $data = array('collection' => $this->oMapperBlog->GetBlogsByFilter($aFilter, $aOrder, $iCount, $iCurrPage, $iPerPage), 'count' => $iCount);
         $this->Cache_Set($data, $sKey, array("blog_update", "blog_new"), 60 * 60 * 24 * 2);
     }
     $data['collection'] = $this->GetBlogsAdditionalData($data['collection'], $aAllowData);
     return $data;
 }