public function __construct(User $user, CommentsManager $commentsManager, ResourceAuthorizator $resourceAuthorizator, CaptchaManager $captchaManager, IRatingControlFactory $rating, $forWhat, $forId) { $this->user = $user; $this->paginator = new Paginator(); $this->commentsManager = $commentsManager; $this->resourceAuthorizator = $resourceAuthorizator; $this->captchaManager = $captchaManager; $this->rating = $rating; $this->commentsManager->setComments($forWhat, $forId, $this->user->isLoggedIn() ? $this->user->id : null); $this->paginator->setItemCount($this->commentsManager->countComments()); $this->paginator->setItemsPerPage(8); $this->paginator->setPage(1); $this->page = $this->paginator->getPage(); $this->lastPage = $this->paginator->getLastPage(); }
/** * Get last page URL * @param Paginator $paginator * @return Link */ private function getLastPageUrl(Paginator $paginator) { $url = clone $this->request->getUrl(); parse_str($url->getQuery(), $query); $query['offset'] = $paginator->getLastPage() * $paginator->getItemsPerPage() - $paginator->getItemsPerPage(); $query['limit'] = $paginator->getItemsPerPage(); $url->appendQuery($query); return new Link($url, Link::LAST); }