TYPO3: Route Enhancer für die Extension events2
Damit aus ?tx_events2_events[event]=12 ein Pfad wie /termine/24-05-2026/sommerfest wird, braucht die Site-Konfiguration einen Route Enhancer. Für die Extension events2 sehen die beiden gebräuchlichen so aus:
routeEnhancers:
Events2Show:
type: Extbase
limitToPages:
- 327
extension: Events2
plugin: Events
routes:
-
routePath: '/{date}/{event_title}'
_controller: 'Day::show'
_arguments:
date: timestamp
event_title: event
defaultController: 'Day::show'
aspects:
date:
type: TimestampMapper
format: 'd-m-Y'
event_title:
type: PersistedAliasMapper
tableName: tx_events2_domain_model_event
routeFieldName: path_segment
Events2List:
type: Extbase
limitToPages:
- 23
namespace: tx_events2_events
routes:
-
routePath: '/{page}'
_controller: 'Day::list'
_arguments:
page: '@widget_0/currentPage'
defaultController: 'Day::list'
defaults:
page: '1'
requirements:
page: '\d+'
aspects:
page:
type: StaticRangeMapper
start: '1'
end: '100'Woher die Aspekte kommen
PersistedAliasMapper und StaticRangeMapper bringt TYPO3 selbst mit, ebenso PersistedPatternMapper, StaticValueMapper und LocaleModifier. TimestampMapper dagegen stammt aus events2. Wer ihn in einer anderen Installation einsetzen will, braucht die Extension — oder einen eigenen Aspekt.
Die Grenze bei den Seitenzahlen
Ein StaticRangeMapper zählt jeden möglichen Wert einzeln auf. TYPO3 multipliziert die Bereiche aller Aspekte einer Route und bricht ab, sobald das Ergebnis 10.000 übersteigt:
Possible range of all mappers is larger than 10000 itemsBei einer einzelnen Seitenzahl bis 100 ist das kein Thema. Sobald aber mehrere Bereiche in derselben Route zusammenkommen — Jahr, Monat und Seite etwa —, ist die Grenze schneller erreicht, als man denkt: 19 Jahre mal 12 Monate mal 99 Seiten sind bereits gut 22.000. Dann hilft nur, den Bereich kleiner zu setzen. Die Seitenzahlen dahinter sind ohnehin für niemanden mehr interessant, für Suchmaschinen am wenigsten.
Geprüft mit TYPO3 14. Die Angaben zu events2 selbst stammen aus der Extension, nicht aus dem TYPO3-Kern.