Пример #1
0
 /**
  * Получить все комменты
  *
  * @param string $sTargetType             Тип владельца комментария
  * @param int    $iPage                   Номер страницы
  * @param int    $iPerPage                Количество элементов на страницу
  * @param array  $aExcludeTarget          Список ID владельцев, которые необходимо исключить из выдачи
  * @param array  $aExcludeParentTarget    Список ID родителей владельцев, которые необходимо исключить из выдачи,
  *                                        например, исключить комментарии топиков к определенным блогам(закрытым)
  *
  * @return array('collection'=>array, 'count'=>int)
  */
 public function GetCommentsAll($sTargetType, $iPage, $iPerPage, $aExcludeTarget = array(), $aExcludeParentTarget = array())
 {
     $sCacheKey = "comment_all_" . serialize(func_get_args());
     if (false === ($data = E::ModuleCache()->Get($sCacheKey))) {
         $data = array('collection' => $this->oMapper->GetCommentsIdByTargetType($sTargetType, $iCount, $iPage, $iPerPage, $aExcludeTarget, $aExcludeParentTarget), 'count' => $iCount);
         E::ModuleCache()->Set($data, $sCacheKey, array("comment_new_{$sTargetType}", "comment_update_status_{$sTargetType}"), 'P1D');
     }
     if ($data['collection']) {
         $data['collection'] = $this->GetCommentsAdditionalData($data['collection'], array('target', 'favourite', 'user' => array()));
     }
     return $data;
 }