From 77e776246d1770323ce54467b5d2925a425abd78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Mon, 22 Aug 2022 10:04:54 +0200 Subject: [PATCH] Respect eneable fields in custom page repository when appropriate --- .../Classes/Controller/ConceptController.php | 2 +- .../ep_theme/Classes/Controller/BackendController.php | 4 ++-- .../Classes/Domain/Repository/PageRepository.php | 11 ++++------- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/public/typo3conf/ext/ep_products/Classes/Controller/ConceptController.php b/public/typo3conf/ext/ep_products/Classes/Controller/ConceptController.php index c9cf2b6c..ad640849 100644 --- a/public/typo3conf/ext/ep_products/Classes/Controller/ConceptController.php +++ b/public/typo3conf/ext/ep_products/Classes/Controller/ConceptController.php @@ -83,7 +83,7 @@ class ConceptController extends ActionController $excludedConceptUids = GeneralUtility::trimExplode(',', $this->settings['excludedConceptUids'], true); $limit = $this->settings['showMoreLink'] ? 4 : 0; $teasers = $this->productDataService->getTeasergroup($filterSettings, $excludedConceptUids, $limit); - $pages = $this->pageRepository->findPagesByPid($this->settings['conceptsPageUid']); + $pages = $this->pageRepository->findPagesByPid((int)$this->settings['conceptsPageUid']); $data = $this->configurationManager->getContentObject()->data; $this->view->assignMultiple([ diff --git a/public/typo3conf/ext/ep_theme/Classes/Controller/BackendController.php b/public/typo3conf/ext/ep_theme/Classes/Controller/BackendController.php index e7225f41..151b4be4 100644 --- a/public/typo3conf/ext/ep_theme/Classes/Controller/BackendController.php +++ b/public/typo3conf/ext/ep_theme/Classes/Controller/BackendController.php @@ -69,14 +69,14 @@ class BackendController extends ActionController public function initializeAction() { - $this->pageUid = (integer)GeneralUtility::_GET('id'); + $this->pageUid = (int)GeneralUtility::_GET('id'); parent::initializeAction(); } public function listPagesAction() { - $pages = $this->pageRepository->findPagesByPid($this->pageUid); + $pages = $this->pageRepository->findPagesByPid($this->pageUid, true); $this->view->assign('pages', $pages); } diff --git a/public/typo3conf/ext/ep_theme/Classes/Domain/Repository/PageRepository.php b/public/typo3conf/ext/ep_theme/Classes/Domain/Repository/PageRepository.php index 32c4f64e..b535d1e6 100644 --- a/public/typo3conf/ext/ep_theme/Classes/Domain/Repository/PageRepository.php +++ b/public/typo3conf/ext/ep_theme/Classes/Domain/Repository/PageRepository.php @@ -2,6 +2,7 @@ namespace EP\EpTheme\Domain\Repository; +use TYPO3\CMS\Core\Domain\Repository\PageRepository as CorePageRepository; use TYPO3\CMS\Extbase\Persistence\Repository; class PageRepository extends Repository @@ -13,23 +14,19 @@ class PageRepository extends Repository 'sorting' => 'ASC', ]; - /** - * @param int $pid - * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface - */ - public function findPagesByPid($pid) + public function findPagesByPid(int $pid, bool $includeDisabled = false) { $query = $this->createQuery(); $query ->getQuerySettings() ->setRespectStoragePage(false) - ->setIgnoreEnableFields(true) + ->setIgnoreEnableFields($includeDisabled) ->setIncludeDeleted(false) ->setRespectSysLanguage(false) ; $query->matching($query->logicalAnd([ $query->equals('pid', $pid), - $query->equals('doktype', \TYPO3\CMS\Core\Domain\Repository\PageRepository::DOKTYPE_DEFAULT) + $query->equals('doktype', CorePageRepository::DOKTYPE_DEFAULT) ])); return $query->execute();