/** * Возвращает номер страницы, на которой расположен комментарий * * @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; }