feat: alternative date format in url argument for travelinfo

This commit is contained in:
Björn Fromme
2024-12-05 12:55:20 +01:00
parent 0678a99b19
commit dd01073d05
2 changed files with 51 additions and 27 deletions
+47 -27
View File
@@ -3,6 +3,9 @@ baseVariants:
- -
base: 'https://ep-reisen-10.ddev.site' base: 'https://ep-reisen-10.ddev.site'
condition: 'applicationContext == "Development"' condition: 'applicationContext == "Development"'
-
base: 'https://staging.ep-reisen.de'
condition: 'applicationContext == "Production/Staging"'
disableStaticFileCache: false disableStaticFileCache: false
errorHandling: errorHandling:
- -
@@ -165,39 +168,24 @@ routeEnhancers:
type: PersistedAliasMapper type: PersistedAliasMapper
tableName: tx_epproducts_domain_model_product tableName: tx_epproducts_domain_model_product
routeFieldName: path_segment routeFieldName: path_segment
TravelinfoPlugin: StaticResultsPlugin:
type: Extbase type: Extbase
extension: EpProducts extension: EpProducts
plugin: travelinfo plugin: staticresult
limitToPages: limitToPages:
- 2736 - 1838
routes: routes:
- -
routePath: '/{travelinfo}/{traveldate}' routePath: '/{filter_settings}'
_controller: 'Travelinfo::index' _controller: 'Search::staticresult'
_arguments: _arguments:
travelinfo: travelinfo filter_settings: encodedFilterSettings
traveldate: travelDate defaultController: 'Search::staticresult'
-
routePath: '/{busproid}'
_controller: 'Travelinfo::myep'
_arguments:
busproid: busProId
defaultController: 'Travelinfo::index'
aspects:
travelinfo:
type: PersistedAliasMapper
tableName: tx_epproducts_domain_model_travelinfo
routeFieldName: path_segment
traveldate:
type: PassthroughMapper
busproid:
type: PassthroughMapper
requirements: requirements:
travelinfodate: '\d{4}\-\d{2}\-\d{2}' filter_settings: '[A-Z\d%\-\|;]+'
busproid: '\d+' aspects:
defaults: filter_settings:
travelinfodate: '2000-01-01' type: PassthroughMapper
ContingentsIcalPlugin: ContingentsIcalPlugin:
type: Extbase type: Extbase
extension: EpProducts extension: EpProducts
@@ -259,6 +247,37 @@ routeEnhancers:
type: PersistedAliasMapper type: PersistedAliasMapper
tableName: tx_epproducts_domain_model_product tableName: tx_epproducts_domain_model_product
routeFieldName: uid routeFieldName: uid
TravelinfoPlugin:
type: Extbase
extension: EpProducts
plugin: travelinfo
limitToPages:
- 2736
routes:
-
routePath: '/{travel_info}/{travel_date}'
_controller: 'Travelinfo::index'
_arguments:
travel_info: travelinfo
travel_date: travelDate
-
routePath: '/{buspro_id}'
_controller: 'Travelinfo::myep'
_arguments:
buspro_id: busProId
defaultController: 'Travelinfo::index'
aspects:
travel_info:
type: PersistedAliasMapper
tableName: tx_epproducts_domain_model_travelinfo
routeFieldName: path_segment
travel_date:
type: PassthroughMapper
buspro_id:
type: PassthroughMapper
requirements:
travel_date: '\d{4}\-\d{2}\-\d{2}|\d{2}\d{2}\d{4}'
buspro_id: '\d+'
PageTypeSuffix: PageTypeSuffix:
type: PageType type: PageType
default: / default: /
@@ -271,9 +290,10 @@ routeEnhancers:
.ical: 1710 .ical: 1710
sitemap.xml: 1533906435 sitemap.xml: 1533906435
yoast-snippetpreview.json: 1480321830 yoast-snippetpreview.json: 1480321830
/pxa: 7378121
routes: routes:
- -
route: robots.txt route: robots.txt
type: staticText type: staticText
content: "User-agent: *\r\nDisallow: /typo3/\r\nDisallow: /typo3_src/\r\nAllow: /typo3/sysext/frontend/Resources/Public/*\r\n" content: "User-agent: *\r\nDisallow: /typo3/\r\nDisallow: /typo3_src/\r\nDisallow: /ajax/\r\nAllow: /typo3/sysext/frontend/Resources/Public/*\r\n"
websiteTitle: '' websiteTitle: ''
@@ -59,6 +59,10 @@ class TravelinfoController extends ActionController
{ {
$product = $travelinfo->getProduct(); $product = $travelinfo->getProduct();
if (preg_match('/^\d{2}\d{2}\d{4}$/', $travelDate)) {
$travelDate = (\DateTimeImmutable::createFromFormat('dmY', $travelDate))->format('Y-m-d');
}
/** @var Date $date */ /** @var Date $date */
$date = $this->dateRepository->findForProductAndDate($product, $travelDate)->getFirst(); $date = $this->dateRepository->findForProductAndDate($product, $travelDate)->getFirst();
$hasCourses = null !== $date && 0 < count($date->getServicesGeneral('KUR')); $hasCourses = null !== $date && 0 < count($date->getServicesGeneral('KUR'));