/** * Получает список топиков по тегу * * @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; }
/** * Получает список топиков по тегу * * @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; }