From 225b90e71bb800baa81360b3f84217f726b8d55a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Fri, 8 Nov 2024 13:04:26 +0100 Subject: [PATCH] fix: replace relation to date entity with text property for code --- .../Controller/TravelinfoController.php | 24 +++++++++++--- .../Classes/Domain/Model/Travelinfo.php | 14 +++++---- .../tx_epproducts_domain_model_travelinfo.php | 31 ++++--------------- .../typo3conf/ext/ep_products/ext_tables.sql | 2 +- .../Private/Templates/Travelinfo/Index.html | 10 +++--- 5 files changed, 40 insertions(+), 41 deletions(-) diff --git a/public/typo3conf/ext/ep_products/Classes/Controller/TravelinfoController.php b/public/typo3conf/ext/ep_products/Classes/Controller/TravelinfoController.php index 04b03e75..dbc465d8 100644 --- a/public/typo3conf/ext/ep_products/Classes/Controller/TravelinfoController.php +++ b/public/typo3conf/ext/ep_products/Classes/Controller/TravelinfoController.php @@ -3,25 +3,41 @@ namespace EP\EpProducts\Controller; use EP\EpProducts\Domain\Model\Travelinfo; +use EP\EpProducts\Domain\Repository\DateRepository; use TYPO3\CMS\Core\Site\SiteFinder; -use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; class TravelinfoController extends ActionController { + /** + * @var DateRepository + */ + private $dateRepository; + + /** + * @var SiteFinder + */ + private $siteFinder; + + public function __construct(DateRepository $dateRepository, SiteFinder $siteFinder) + { + $this->dateRepository = $dateRepository; + $this->siteFinder = $siteFinder; + } + public function indexAction(Travelinfo $travelinfo) { $today = new \DateTimeImmutable(); - $date = $travelinfo->getTravelDate(); + $date = $this->dateRepository->findOneByCode($travelinfo->getTravelCode()); if (null === $date || $date->getDateEnd() < $today) { - $siteFinder = GeneralUtility::makeInstance(SiteFinder::class); - $site = $siteFinder->getSiteByIdentifier('ep-reisen'); + $site = $this->siteFinder->getSiteByIdentifier('ep-reisen'); $rootPageId = $site->getRootPageId(); $uri = $site->getRouter()->generateUri($rootPageId); $this->redirectToUri($uri); } $this->view->assign('travelinfo', $travelinfo); + $this->view->assign('date', $date); } } diff --git a/public/typo3conf/ext/ep_products/Classes/Domain/Model/Travelinfo.php b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Travelinfo.php index d1338276..1e68c7fa 100644 --- a/public/typo3conf/ext/ep_products/Classes/Domain/Model/Travelinfo.php +++ b/public/typo3conf/ext/ep_products/Classes/Domain/Model/Travelinfo.php @@ -75,9 +75,9 @@ class Travelinfo extends AbstractEntity protected $links; /** - * @var Date + * @var string */ - protected $travelDate; + protected $travelCode; public function __construct() { @@ -248,14 +248,16 @@ class Travelinfo extends AbstractEntity return $this; } - public function getTravelDate() + public function getTravelCode() { - return $this->travelDate; + return $this->travelCode; } - public function setTravelDate($travelDate) + public function setTravelCode($travelCode) { - $this->travelDate = $travelDate; + $this->travelCode = $travelCode; + + return $this; } } diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfo.php b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfo.php index 8957462c..22916632 100644 --- a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfo.php +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_travelinfo.php @@ -27,7 +27,7 @@ return [ ], ], 'palettes' => [ - 'basics' => ['showitem' => 'title,path_segment,--linebreak--,travel_date,--linebreak--,links,--linebreak--,teasers'], + 'basics' => ['showitem' => 'title,path_segment,--linebreak--,travel_code,--linebreak--,links,--linebreak--,teasers'], 'text' => ['showitem' => 'subline,headline,--linebreak--,intro_text,--linebreak--,footer_text,--linebreak--, self_arranged_text,--linebreak--,additional_info,--linebreak--,important_phone_numbers,--linebreak--, important_links'], @@ -190,32 +190,13 @@ return [ $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] ), ], - 'travel_date' => [ + 'travel_code' => [ 'exclude' => false, - 'label' => 'Termin', + 'label' => 'Reisecode des Termins', 'config' => [ - 'type' => 'group', - 'internal_type' => 'db', - 'allowed' => 'tx_epproducts_domain_model_date', - 'minitems' => 1, - 'maxitems' => 1, - 'size' => 1, - 'fieldControl' => [ - 'elementBrowser' => [ - 'disabled' => true, - ], - ], - 'fieldWizard' => [ - 'recordsOverview' => [ - 'disabled' => true, - ], - ], - 'suggestOptions' => [ - 'default' => [ - 'additionalSearchFields' => 'code,product_name,product_keywords', - 'orderBy' => 'code', - ], - ], + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim,required' ], ], 'intro_text' => [ diff --git a/public/typo3conf/ext/ep_products/ext_tables.sql b/public/typo3conf/ext/ep_products/ext_tables.sql index 81c951d6..9aab062e 100644 --- a/public/typo3conf/ext/ep_products/ext_tables.sql +++ b/public/typo3conf/ext/ep_products/ext_tables.sql @@ -1370,7 +1370,7 @@ CREATE TABLE tx_epproducts_domain_model_travelinfo footer_image int(11) DEFAULT '0' NOT NULL, links int(11) DEFAULT '0' NOT NULL, teasers int(11) DEFAULT '0' NOT NULL, - travel_date int(11) DEFAULT '0' NOT NULL, + travel_code varchar(255) DEFAULT '' NOT NULL, path_segment varchar(255) DEFAULT '' NOT NULL, tstamp int(11) unsigned DEFAULT '0' NOT NULL, diff --git a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Travelinfo/Index.html b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Travelinfo/Index.html index 20cc6ce8..1db3c91e 100644 --- a/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Travelinfo/Index.html +++ b/public/typo3conf/ext/ep_theme/Resources/Private/Templates/Travelinfo/Index.html @@ -45,7 +45,7 @@ {travelinfo.introText -> f:format.html()}

- {travelinfo.traveldate.product.name} {travelinfo.traveldate.dateStart -> f:format.date(format: 'd.m.Y')} - {travelinfo.traveldate.dateEnd -> f:format.date(format: 'd.m.Y')} + {date.product.name} {date.dateStart -> f:format.date(format: 'd.m.Y')} - {date.dateEnd -> f:format.date(format: 'd.m.Y')}

@@ -64,11 +64,11 @@ Adresse

- {travelinfo.traveldate.hotel.name} + {date.hotel.name}
- {travelinfo.traveldate.hotel.address -> f:format.nl2br()} + {date.hotel.address -> f:format.nl2br()}

- +

Bus-Zustiege

@@ -84,7 +84,7 @@ Uhrzeit - + {pickup.city}
{pickup.street}