Exemple #1
0
 /**
  * Получить все комменты сгрупированные по типу(для вывода прямого эфира)
  *
  * @param string $sTargetType    Тип владельца комментария
  * @param int    $iLimit         Количество элементов
  *
  * @return array
  */
 public function GetCommentsOnline($sTargetType, $iLimit)
 {
     /**
      * Исключаем из выборки идентификаторы закрытых блогов (target_parent_id)
      */
     $aCloseBlogs = $this->oUserCurrent ? E::ModuleBlog()->GetInaccessibleBlogsByUser($this->oUserCurrent) : E::ModuleBlog()->GetInaccessibleBlogsByUser();
     $s = serialize($aCloseBlogs);
     $sCacheKey = "comment_online_{$sTargetType}_{$s}_{$iLimit}";
     if (false === ($data = E::ModuleCache()->Get($sCacheKey))) {
         $data = $this->oMapper->GetCommentsIdOnline($sTargetType, $aCloseBlogs, $iLimit);
         E::ModuleCache()->Set($data, $sCacheKey, array("comment_online_update_{$sTargetType}"), 'P1D');
     }
     if ($data) {
         $data = $this->GetCommentsAdditionalData($data);
     }
     return $data;
 }