From 7cd34d2c892f8733fb145e34998b99fb6349b943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bjo=CC=88rn=20Fromme?= Date: Tue, 19 Feb 2019 12:37:26 +0100 Subject: [PATCH] Ignore enable fields in dataprocessors to avoid issues with deactivated offers --- .../Classes/DataProcessing/OfferProcessor.php | 4 +-- .../Domain/Repository/OfferRepository.php | 28 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/web/typo3conf/ext/ep_events/Classes/DataProcessing/OfferProcessor.php b/web/typo3conf/ext/ep_events/Classes/DataProcessing/OfferProcessor.php index 5a6937b3..fb7a7f34 100644 --- a/web/typo3conf/ext/ep_events/Classes/DataProcessing/OfferProcessor.php +++ b/web/typo3conf/ext/ep_events/Classes/DataProcessing/OfferProcessor.php @@ -66,10 +66,10 @@ class OfferProcessor implements DataProcessorInterface $offerUid = (int) $cObj->data['tx_epevents_offer']; if ($offerUid !== 0) { /** @var \EP\EpEvents\Domain\Model\Offer $offer */ - $offer = $repository->findByIdentifier($offerUid); + $offer = $repository->forceFindByUid($offerUid)->getFirst(); } else { $pageUid = $GLOBALS['TSFE']->id; - $offer = $repository->findOneByDetailPage($pageUid); + $offer = $repository->forceFindByDetailPage($pageUid)->getFirst(); } /** @var \EP\EpEvents\Domain\Model\Offer $offer */ $processedData['offer'] = $offer; diff --git a/web/typo3conf/ext/ep_events/Classes/Domain/Repository/OfferRepository.php b/web/typo3conf/ext/ep_events/Classes/Domain/Repository/OfferRepository.php index dcc64424..ce4ff7d7 100644 --- a/web/typo3conf/ext/ep_events/Classes/Domain/Repository/OfferRepository.php +++ b/web/typo3conf/ext/ep_events/Classes/Domain/Repository/OfferRepository.php @@ -90,6 +90,34 @@ class OfferRepository extends AbstractRepository return $query->execute(); } + /** + * Ignores enable fields to avoid issues with deactivated offed entities + * + * @param int $uid + * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface + */ + public function forceFindByUid($uid) + { + $query = $this->createQuery(); + $query->getQuerySettings()->setIgnoreEnableFields(true); + $query->matching($query->equals('uid', $uid)); + return $query->execute(); + } + + /** + * Ignores enable fields to avoid issues with deactivated offed entities + * + * @param int $pageUid + * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface + */ + public function forceFindByDetailPage($pageUid) + { + $query = $this->createQuery(); + $query->getQuerySettings()->setIgnoreEnableFields(true); + $query->matching($query->equals('detail_page', $pageUid)); + return $query->execute(); + } + /** * @param string $queryString * @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface