diff --git a/Classes/Controller/ListByCategoryController.php b/Classes/Controller/ListByCategoryController.php index 5d63356001c67abbfd3351ac20c31b19c4865b74..677a1b1f770a4f16aa0ed8ea972649e8004b1c88 100644 --- a/Classes/Controller/ListByCategoryController.php +++ b/Classes/Controller/ListByCategoryController.php @@ -102,7 +102,7 @@ class ListByCategoryController extends AbstractController { $numberOfPages = ($newsPerPage <= 0 ? 0 : ceil($newsCount / $newsPerPage)); $headerSet = FALSE; - $offset = $this->calculatePaginationOffset($currentPageBrowserPage); + $offset = $this->calculatePaginationOffset($currentPageBrowserPage, $newsPerPage); $news = $this->newsRepository->findAllSortedNewsByCategories( $categoryUids, $newsPerPage, $offset, $this->settings['sortBy'], $tagUids, $startTime, $endTime diff --git a/Classes/Controller/OverviewController.php b/Classes/Controller/OverviewController.php index c5132a81f48e941a34f6064d2900c03309c09c26..00fada20cc522b274ae140b70741d9d3d2e05689 100644 --- a/Classes/Controller/OverviewController.php +++ b/Classes/Controller/OverviewController.php @@ -239,7 +239,7 @@ class OverviewController extends AbstractController { $newsCount = $this->newsRepository->newsCountByCategories($categoryIds, $tagIds, $startTime, $endTime); $numberOfPages = ($newsLimitPerCategory <= 0 ? 0 : ceil($newsCount / $newsLimitPerCategory)); // Redo this function, until one variable get the amount of newsLimitPerTag. Reduces the amount of ajax calls. Needed because of languagevisibility. - if ($maxNewsPerCategory < $newsLimitPerCategory && count($allNews) < $newsLimitPerCategory) { + if ($maxNewsPerCategory < $newsLimitPerCategory && \count($allNews) < $newsLimitPerCategory) { $nextPage = $currentPageBrowserPage + 1; if ($nextPage <= $numberOfPages) { $this->setPageBrowserPage($nextPage); @@ -445,13 +445,11 @@ class OverviewController extends AbstractController { $this->view->assign('selectedTag', $selectedTag); $this->view->assign('selectedCategory', $selectedCategory); - $offset = $this->calculatePaginationOffset($currentPageBrowserPage); - $newsPerPage = (int) $this->settings['newsLimit']; + $offset = $this->calculatePaginationOffset($currentPageBrowserPage, $newsPerPage); $startTime = (int) $this->settings['starttime']; $endTime = (int) $this->settings['endtime']; - if ($this->settings['onlyNewsWithinThisPageSection']) { /** @noinspection PhpUndefinedMethodInspection */ $categories = $this->categoryRepository->findByPid($GLOBALS['TSFE']->id); @@ -511,7 +509,7 @@ class OverviewController extends AbstractController { $numberOfPages = ($newsPerPage <= 0 ? 0 : ceil($newsCount / $newsPerPage)); // Redo this function, until one variable get the amount of newsLimitPerTag. Reduces the amount of ajax calls. Needed because of languagevisibility. - if (count($newsMetaData) < $newsPerPage) { + if (\count($newsMetaData) < ($newsPerPage - 1)) { $nextPage = $currentPageBrowserPage + 1; if ($nextPage <= $numberOfPages) { $this->setPageBrowserPage($nextPage); @@ -542,10 +540,6 @@ class OverviewController extends AbstractController { * @return void */ protected function setPageBrowserPage($newPage) { - if (!isset($_GET['tx_sgnews_pagebrowser']['currentPage'])) { - return; - } - $_GET['tx_sgnews_pagebrowser']['currentPage'] = $newPage; } }