예제 #1
0
 /**
  * Получает список топиков по тегу
  *
  * @param  string $sTag Тег
  * @param  int $iPage Номер страницы
  * @param  int $iPerPage Количество элементов на страницу
  * @param  bool $bAddAccessible Указывает на необходимость добавить в выдачу топики,
  *                                из блогов доступных пользователю. При указании false,
  *                                в выдачу будут переданы только топики из общедоступных блогов.
  * @return array
  */
 public function GetTopicsByTag($sTag, $iPage, $iPerPage, $bAddAccessible = true)
 {
     $aCloseBlogs = $this->oUserCurrent && $bAddAccessible ? $this->Blog_GetInaccessibleBlogsByUser($this->oUserCurrent) : $this->Blog_GetInaccessibleBlogsByUser();
     $s = serialize($aCloseBlogs);
     if (false === ($data = $this->Cache_Get("topic_tag_{$sTag}_{$iPage}_{$iPerPage}_{$s}"))) {
         $data = array('collection' => $this->oMapperTopic->GetTopicsByTag($sTag, $aCloseBlogs, $iCount, $iPage, $iPerPage), 'count' => $iCount);
         $this->Cache_Set($data, "topic_tag_{$sTag}_{$iPage}_{$iPerPage}_{$s}", array('topic_update', 'topic_new'), 60 * 60 * 24 * 2);
     }
     $data['collection'] = $this->GetTopicsAdditionalData($data['collection']);
     return $data;
 }
예제 #2
0
 /**
  * Получает список топиков по тегу
  *
  * @param  string $sTag           Тег
  * @param  int    $iPage          Номер страницы
  * @param  int    $iPerPage       Количество элементов на страницу
  * @param  bool   $bAddAccessible Указывает на необходимость добавить в выдачу топики,
  *                                из блогов доступных пользователю. При указании false,
  *                                в выдачу будут переданы только топики из общедоступных блогов.
  *
  * @return array
  */
 public function GetTopicsByTag($sTag, $iPage, $iPerPage, $bAddAccessible = true)
 {
     $aCloseBlogs = $this->oUserCurrent && $bAddAccessible ? E::ModuleBlog()->GetInaccessibleBlogsByUser($this->oUserCurrent) : E::ModuleBlog()->GetInaccessibleBlogsByUser();
     $sCacheKey = "topic_tag_{$sTag}_{$iPage}_{$iPerPage}_" . serialize($aCloseBlogs);
     if (false === ($data = E::ModuleCache()->Get($sCacheKey))) {
         $data = array('collection' => $this->oMapper->GetTopicsByTag($sTag, $aCloseBlogs, $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']);
     }
     return $data;
 }