Skip to content
Snippets Groups Projects
Commit 6e46b169 authored by Torsten Oppermann's avatar Torsten Oppermann
Browse files

[TASK] Final review, scrollbrowser offset fixes

parent 853bf1cd
No related branches found
No related tags found
1 merge request!5Feature 5 2 0
...@@ -120,18 +120,22 @@ class OverviewController extends AbstractController { ...@@ -120,18 +120,22 @@ class OverviewController extends AbstractController {
* @param array $newsByCategory * @param array $newsByCategory
* @param array $allNews * @param array $allNews
* @param array $newsFilter * @param array $newsFilter
* @param boolean $isInitialCall
* @return void * @return void
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
*/ */
protected function overviewWithCategories(array $newsByCategory = [], array $allNews = [], array $newsFilter = []) { protected function overviewWithCategories(
array $newsByCategory = [], array $allNews = [], array $newsFilter = [], $isInitialCall = TRUE
) {
$newsLimitPerCategory = (int) $this->settings['newsLimit']; $newsLimitPerCategory = (int) $this->settings['newsLimit'];
$this->categoryRepository->setDefaultOrderings(['sorting' => Query::ORDER_ASCENDING]); $this->categoryRepository->setDefaultOrderings(['sorting' => Query::ORDER_ASCENDING]);
$offset = 0; $offset = 0;
$currentPageBrowserPage = (int) GeneralUtility::_GP('tx_sgnews_pagebrowser')['currentPage']; $currentPageBrowserPage = (int) GeneralUtility::_GP('tx_sgnews_pagebrowser')['currentPage'];
if ($currentPageBrowserPage && $newsLimitPerCategory) { if ($currentPageBrowserPage && $newsLimitPerCategory) {
$offset = $currentPageBrowserPage * $newsLimitPerCategory; $offset = ($currentPageBrowserPage * $newsLimitPerCategory) - ($isInitialCall ? 0 : 1);
} }
if ($this->settings['onlyNewsWithinThisPageSection']) { if ($this->settings['onlyNewsWithinThisPageSection']) {
...@@ -230,7 +234,7 @@ class OverviewController extends AbstractController { ...@@ -230,7 +234,7 @@ class OverviewController extends AbstractController {
$nextPage = $currentPageBrowserPage + 1; $nextPage = $currentPageBrowserPage + 1;
if ($nextPage <= $numberOfPages) { if ($nextPage <= $numberOfPages) {
GeneralUtility::_GETset(['tx_sgnews_pagebrowser' => ['currentPage' => $nextPage]]); GeneralUtility::_GETset(['tx_sgnews_pagebrowser' => ['currentPage' => $nextPage]]);
$this->overviewWithCategories($newsByCategory, $allNews, $newsFilter); $this->overviewWithCategories($newsByCategory, $allNews, $newsFilter, FALSE);
return; return;
} }
} }
...@@ -262,18 +266,21 @@ class OverviewController extends AbstractController { ...@@ -262,18 +266,21 @@ class OverviewController extends AbstractController {
* @param array $newsByTag * @param array $newsByTag
* @param array $allNews * @param array $allNews
* @param array $newsFilter * @param array $newsFilter
* @param boolean $isInitialCall
* @return void * @return void
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
*/ */
protected function overviewWithTags(array $newsByTag = [], array $allNews = [], array $newsFilter = []) { protected function overviewWithTags(
array $newsByTag = [], array $allNews = [], array $newsFilter = [], $isInitialCall = TRUE
) {
$newsLimitPerTag = (int) $this->settings['newsLimit']; $newsLimitPerTag = (int) $this->settings['newsLimit'];
$this->tagRepository->setDefaultOrderings(['sorting' => Query::ORDER_ASCENDING]); $this->tagRepository->setDefaultOrderings(['sorting' => Query::ORDER_ASCENDING]);
$offset = 0; $offset = 0;
$currentPageBrowserPage = (int) GeneralUtility::_GP('tx_sgnews_pagebrowser')['currentPage']; $currentPageBrowserPage = (int) GeneralUtility::_GP('tx_sgnews_pagebrowser')['currentPage'];
if ($currentPageBrowserPage && $newsLimitPerTag) { if ($currentPageBrowserPage && $newsLimitPerTag) {
$offset = $currentPageBrowserPage * $newsLimitPerTag; $offset = ($currentPageBrowserPage * $newsLimitPerTag) - ($isInitialCall ? 0 : 1);
} }
$tagPid = (int) $this->settings['tagPid']; $tagPid = (int) $this->settings['tagPid'];
...@@ -381,7 +388,7 @@ class OverviewController extends AbstractController { ...@@ -381,7 +388,7 @@ class OverviewController extends AbstractController {
$nextPage = $currentPageBrowserPage + 1; $nextPage = $currentPageBrowserPage + 1;
if ($nextPage <= $numberOfPages) { if ($nextPage <= $numberOfPages) {
GeneralUtility::_GETset(['tx_sgnews_pagebrowser' => ['currentPage' => $nextPage]]); GeneralUtility::_GETset(['tx_sgnews_pagebrowser' => ['currentPage' => $nextPage]]);
$this->overviewWithTags($newsByTag, $allNews, $newsFilter); $this->overviewWithTags($newsByTag, $allNews, $newsFilter, FALSE);
return; return;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment