public function getPagination($foundRows)
{
$pagination = new Pagination();
$maxResults = $this->getMaxResults();
if (!empty($foundRows) && $foundRows > $maxResults) {
$params = $this->params();
$pageNum = $this->getPageNum();
$params[self::QUERY_PARAM_PAGE_NUM] = 1;
$pagination->first = $this->generateLink($params, true);
$params[self::QUERY_PARAM_PAGE_NUM] = $lastPage = ceil($foundRows / $maxResults);
$pagination->last = $this->generateLink($params);
if ($pageNum > 1) {
if ($pageNum == 2) {
$pagination->prev = $pagination->first;
} else {
$params[self::QUERY_PARAM_PAGE_NUM] = $pageNum - 1;
$pagination->prev = $this->generateLink($params);
}
}
if ($pageNum != $lastPage) {
if ($pageNum == $lastPage - 1) {
$pagination->next = $pagination->last;
} else {
$params[self::QUERY_PARAM_PAGE_NUM] = $pageNum + 1;
$pagination->next = $this->generateLink($params);
}
}
}
return $pagination;
}