404 Fehlerseite beim Routing nach Update auf 9.5.20

Für ein selbst-geschriebenes Plugin hatte ich eine funktioniere Routing-Konfiguration umgesetzt. Die Extension ist so eine Art news, aber deutlich abgespeckt. Da die Beiträge alle ein Datum haben, gibt es eine einfache Datumsnavigation. Nach einem Update auf TYPO3 9.5.20 funktionierten die Detail-Links weiterhin, die Links der Datumsnavigation lieferten einen 404-Fehler – Seite nicht gefunden.

Die funktonierende Konfiguration sah so aus.

routeEnhancers:
  Magazine:
    type: Extbase
    extension: MyMagazine
    limitToPages:
      - 18
      - 65
    plugin: Magazine
    defaultController: 'Article::list'
    defaults:
      date-month: ''
      date-year: ''
    routes:
      -
        routePath: '/{article-title}'
        _controller: 'Article::show'
        _arguments:
          article-title: article
      -
        routePath: '/{date-year}-{date-month}'
        _controller: 'Article::list'
        _arguments:
          date-month: overwriteDemand/month
          date-year: overwriteDemand/year
        requirements:
          date-month: \d+
          date-year: \d+
    aspects:
      article-title:
        type: PersistedAliasMapper
        tableName: tx_mymagazine_domain_model_article
        routeFieldName: path_segment
      date-month:
        type: StaticRangeMapper
        start: '01'
        end: '12'
      date-year:
        type: StaticRangeMapper
        start: '2000'
        end: '2030'

Nach dem Update und dem 404-Fehler beim Aufruf der Ansicht mit Jahr-Monat-Parametern hatte ich lange gesucht, unterschiedliches ausprobiert, mich durch den Quellcode gehangelt, es half alles nichts. Ich hatte mich bei der Konfiguration nach der Dokumentation von news gerichtet (Hut ab vor Georg Ringer und dieser Extension). Da ist der Block requirements in dem jeweiligen routePath-Block definiert. Die aktuellste Dokumentation des Core sieht da etwas anders aus: der requirements-Block steht dort an der gleichen Ebene wie aspects und routes. Die Lösung meines Problems war die Angabe von genauen Requirements auf der gleichen Ebene wie routes und aspects, sicherheitshalber habe ich noch einen neuen Konfigurationsabschnitt angelegt (DateMenu).

  DateMenu:
    type: Extbase
    extension: MyMagazine
    limitToPages:
        - 18
    plugin: Magazine
    defaultController: 'Article::list'
    defaults:
      date-month: ''
      date-year: ''
    routes:
      - routePath: '/{date-year}-{date-month}'
        _controller: 'Article::list'
        _arguments:
          date-month: overwriteDemand/month
          date-year: overwriteDemand/year
    requirements:
      date-month: '[0-9]{2}'
      date-year: '[0-9]{4}'
    aspects:
      date-month:
        type: StaticRangeMapper
        start: '01'
        end: '12'
      date-year:
        type: StaticRangeMapper
        start: '2000'
        end: '2030'

Die nicht mehr funktionierende Konfiguration ist wahrscheinlich auf diesen BUGFIX zurückzuführen – es ist jedoch nur eine Vermutung…

Kommentare sind geschlossen.