[Frage] Extbase Plugin Enhancer und optionale Parameter TYPO3-Version: 9.5.11

  • morlock morlock
    Padawan
    0 x
    35 Beiträge
    0 Hilfreiche Beiträge
    13. 11. 2019, 08:45

    Guten Morgen!

    Ich verzweifle leider langsam am neuen URL-Management von Typo :-/
    Nachdem die meisten Hürden wie fehlende Autokonfiguration, fehlende Extension-Hooks und Nichtunterstützung von skipDefaultArguments einigermaßen umschifft sind musste ich nun feststellen, dass (zumindest standardmäßig) offenbar keine optionalen Parameter möglich sind.
    Meine definierte Route wird brav übersetzt, solange keine optionalen Parameter vorhanden sind. Werden aber weitere Parameter angehängt (also /pfad/zur/seite/meine/route?tx_ext_plg[var]=wert) gibt es einen 404er :-(

    Da die Dokumentation ja noch ziemlich dünn ist wollte ich, bevor ich mich komplett durch den Code wühle oder einen eigenen Enhancer schreibe, einmal horchen, ob jemand eine konfigurationsbasierte Lösung für das Problem hat.
    Die URLs sind extrem verteilt, dürfen sich also gegenüber früher nicht ändern. Natürlich könnte man eine zusätzliche Route definieren und sie vom Webserver umschreiben lassen, aber mir wäre wichtig eine Lösungsmöglichkeit zu haben, die die Angabe eines Query-Strings an einer "Extbase-Enhgancer-URL" erlaubt. Man stelle sich mal das Szenario vor, bei dem ein Extbase-Plugin (mit Plugin-Enhancer) zusammen mit einem zweiten Plugin auf einer Seite ist, das einen zusätzlichen Parameter für sich selbst anhängen möchte...

    Viele Grüße,
    Christian


  • 1
  • morlock morlock
    Padawan
    0 x
    35 Beiträge
    0 Hilfreiche Beiträge
    14. 11. 2019, 10:22

    Ok, ich habe mich etwas durchgewühlt und festgestellt, dass es nicht das neue Routing-System war. Es war schlicht der cHash. Allerdings wirft das bei mir gerade eine ganze Litanei von Fragen auf. Aktuell läuft das betreffende System noch mit 7.6. Da funktioniert alles wunderbar. In der lokalen Migration auf 9.5 hat sich aber eben das oben beschriebene Problem ergeben, ergo:

    - es gibt eine Seite, auf der ein Plugin integriert ist (die URL ruft eine non-cacheable Action auf). Der Controller und die Action werden von realURL in einen sprechenden Pfad übersetzt, es gibt aber optionale zusätzliche Parameter, die dann einfach in der URL angehängt werden
    - in 7.6 (mit realURL) werden diese Links mit den optionalen Parametern (per typolink_URL aus dem ContentObjectRenderer) ohne cHash generiert und per Mail verschickt. Die Seiten sind problemlos aufrufbar, "pageNotFoundOnCHashError" ist in den Systemeinstellungen _nicht_ aktiv
    - in 9.5 wird bei Aufruf der Seite nun aber der cHash ganz offensichtlich geprüft und, da er nicht gesetzt ist, wird ein 404er zurückgegeben

    Da bislang alles ganz wunderbar funktioniert hat, stellen sich mir die Fragen:

    - was hat sich verändert, dass 7.6 den cHash an dieser Stelle nicht verlangt, 9.5 aber quasi in einen "Fehlerzustand" geht
    - hätte ich die URLs eigentlich anders generieren müssen? Ich war (vielleicht zu leichtsinnig) immer davon ausgegangen, dass ich mit "typolink_URL" eigentlich nichts falsch machen kann (?)
    - ich habe (zugegebenermaßen relativ blind ohne mich näher mit den Hintergründen zu beschäftigen) versucht, die optionalen Parameter per $GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'] bei der cHash-Behandlung ignorieren zu lassen, das hatte aber auch keinerlei Effekt
    - gibt es evtl. eine Möglichkeit Typo seitens des Plugins anzuweisen (also beim Aufruf der Seite) den cHash nicht zu prüfen und die ungecachete Action einfach auszuführen? Ich würde ungern generell "pageNotFoundOnCHashError" deaktivieren.

    Viele Grüße,
    Christian

  • 1