Direkt zur Hauptnavigation springen Direkt zum Inhalt springen
Alle Beiträge

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 items

Bei 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.