Exemplo n.º 1
0
 /**
  * Возвращает номер страницы, на которой расположен комментарий
  *
  * @param int $sId ID владельца коммента
  * @param string $sTargetType Тип владельца комментария
  * @param ModuleComment_EntityComment $oComment Объект комментария
  * @return bool|int
  */
 public function GetPageCommentByTargetId($sId, $sTargetType, $oComment)
 {
     if (!Config::Get('module.comment.nested_per_page')) {
         return 1;
     }
     if (is_numeric($oComment)) {
         if (!($oComment = $this->GetCommentById($oComment))) {
             return false;
         }
         if ($oComment->getTargetId() != $sId or $oComment->getTargetType() != $sTargetType) {
             return false;
         }
     }
     /**
      * Получаем корневого родителя
      */
     if ($oComment->getPid()) {
         if (!($oCommentRoot = $this->oMapper->GetCommentRootByTargetIdAndChildren($sId, $sTargetType, $oComment->getLeft()))) {
             return false;
         }
     } else {
         $oCommentRoot = $oComment;
     }
     $iCount = ceil($this->oMapper->GetCountCommentsAfterByTargetId($sId, $sTargetType, $oCommentRoot->getLeft()) / Config::Get('module.comment.nested_per_page'));
     if (!Config::Get('module.comment.nested_page_reverse') and $iCountPage = ceil($this->GetCountCommentsRootByTargetId($sId, $sTargetType) / Config::Get('module.comment.nested_per_page'))) {
         $iCount = $iCountPage - $iCount + 1;
     }
     return $iCount ? $iCount : 1;
 }