From 92d7a47d4b98c6675a2ac83d274ffdd16552018a Mon Sep 17 00:00:00 2001 From: Fabian Galinski <fabian@sgalinski.de> Date: Tue, 7 Aug 2018 14:25:44 +0200 Subject: [PATCH] [BUGFIX] The previous duplicate news entries bugfix was just working for 66% --- Classes/Controller/ListByCategoryController.php | 2 +- Classes/Controller/OverviewController.php | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/Classes/Controller/ListByCategoryController.php b/Classes/Controller/ListByCategoryController.php index 5d63356..677a1b1 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 c5132a8..00fada2 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; } } -- GitLab