/**
  * Получает количество комментариев одного пользователя
  *
  * @param  id $sId ID пользователя
  * @param  string $sTargetType Тип владельца комментария
  * @return int
  */
 public function GetCountCommentsByUserId($sId, $sTargetType)
 {
     /**
      * Исключаем из выборки идентификаторы закрытых блогов
      */
     $aCloseBlogs = $this->oUserCurrent && $sId == $this->oUserCurrent->getId() ? array() : $this->Blog_GetInaccessibleBlogsByUser();
     $s = serialize($aCloseBlogs);
     if (false === ($data = $this->Cache_Get("comment_count_user_{$sId}_{$sTargetType}_{$s}"))) {
         $data = $this->oMapper->GetCountCommentsByUserId($sId, $sTargetType, array(), $aCloseBlogs);
         $this->Cache_Set($data, "comment_count_user_{$sId}_{$sTargetType}", array("comment_new_user_{$sId}_{$sTargetType}", "comment_update_status_{$sTargetType}"), 60 * 60 * 24 * 2);
     }
     return $data;
 }
Example #2
0
 /**
  * Получает количество комментариев одного пользователя
  *
  * @param  int    $iUserId     ID пользователя
  * @param  string $sTargetType Тип владельца комментария
  *
  * @return int
  */
 public function GetCountCommentsByUserId($iUserId, $sTargetType)
 {
     /**
      * Исключаем из выборки идентификаторы закрытых блогов
      */
     if ($this->oUserCurrent && $iUserId == $this->oUserCurrent->getId()) {
         $aCloseBlogs = E::ModuleBlog()->GetInaccessibleBlogsByUser();
     } else {
         $aCloseBlogs = array();
     }
     $sCacheKey = "comment_count_user_{$iUserId}_{$sTargetType}_" . serialize($aCloseBlogs);
     if (false === ($data = E::ModuleCache()->Get($sCacheKey))) {
         $data = $this->oMapper->GetCountCommentsByUserId($iUserId, $sTargetType, array(), $aCloseBlogs);
         E::ModuleCache()->Set($data, $sCacheKey, array("comment_new_user_{$iUserId}_{$sTargetType}", "comment_update_status_{$sTargetType}"), 'P2D');
     }
     return $data;
 }