/** * Возвращает количество топиков которые создал юзер * * @param int|object $xUser Пользователь * @param bool $bPublished Флаг публикации топика * * @return array */ public function GetCountTopicsPersonalByUser($xUser, $bPublished) { $iUserId = is_object($xUser) ? $xUser->getId() : intval($xUser); $aFilter = $this->GetNamedFilter('default', array('user_id' => $iUserId, 'topic_published' => $bPublished)); $sCacheKey = 'topic_count_user_' . serialize($aFilter); if (false === ($data = E::ModuleCache()->Get($sCacheKey))) { $data = $this->oMapper->GetCountTopics($aFilter); E::ModuleCache()->Set($data, $sCacheKey, array("topic_update_user_{$iUserId}"), 'P1D'); } return $data; }
/** * Возвращает количество топиков которые создал юзер * * @param int $sUserId ID пользователя * @param int $iPublish Флаг публикации топика * @return array */ public function GetCountTopicsPersonalByUser($sUserId, $iPublish) { $aFilter = array('topic_publish' => $iPublish, 'user_id' => $sUserId, 'blog_type' => array('open', 'personal')); /** * Если пользователь смотрит свой профиль, то добавляем в выдачу * закрытые блоги в которых он состоит */ if ($this->oUserCurrent && $this->oUserCurrent->getId() == $sUserId) { $aFilter['blog_type'][] = 'close'; } $s = serialize($aFilter); if (false === ($data = $this->Cache_Get("topic_count_user_{$s}"))) { $data = $this->oMapperTopic->GetCountTopics($aFilter); $this->Cache_Set($data, "topic_count_user_{$s}", array("topic_update_user_{$sUserId}"), 60 * 60 * 24); } return $data; }