TYPO3 news (tx_news) und cooluri

Bei einem in die Jahre gekommenen Projekt stand ich vor Kurzem vor der Herausforderung, von tt_news zu news zu migrieren und danach die ehemals für tt_news eingestellte Cooluri Konfiguration anzupassen.

Die entscheidende Stelle in der alten Cooluri Konfiguration für tt_news lautete so:

<uriparts>
    <part>
      <parameter>tx_ttnews[tt_news]</parameter>
      <lookindb>
        <!-- <to>SELECT title FROM tt_news WHERE uid=$1</to> -->
        <to> SELECT CONCAT(uid,'-',title) FROM tt_news WHERE uid=$1 </to>
        <!-- if you have news items in different languages in one folder, use this sql -->
        <!-- to>SELECT title FROM tt_news WHERE (uid=$1 or l18n_parent=$1) AND sys_language_uid={L=0}</to -->
        <t3conv>1</t3conv>
      </lookindb>
    </part>
    ...
</uriparts>

Ich wollte die id und den Titel der News in der URL, da einige News identische Titel haben. Das Ergebnis sah so aus:
https:/www.domain.com/aktuelles/123-newstitel.
Genauso sollte es nach der Migration zu news aussehen.

Und so gehts:
Zunächst die Anpassung in den uriparts:

<uriparts>
    <part>
      <parameter>tx_news_pi1[news]</parameter>
      <lookindb>
        <to> SELECT CONCAT(uid,'-',title) FROM tx_news_domain_model_news WHERE uid=$1 </to>
        <t3conv>1</t3conv>
      </lookindb>
    </part>
    ...
</uriparts>

Dann stehen da aber noch der controller und der action Parameter in der URL:
https:/www.domain.com/aktuelles/123-newstitel/%5Bcontroller%5D=News&tx_news_pi1%5Baction%5D=detail.
Die naheliegende Idee, beide Parameter über die predefinedparts zu eliminieren, funktionierte nur zum Teil:

<predefinedparts>
    <part>
        <parameter>tx_news_pi1[controller]</parameter>
    </part>
    <part>
        <parameter>tx_news_pi1[action]</parameter>
    </part>
    ...
<predefinedparts>

Ergebnis:
https:/www.domain.com/aktuelles/123-newstitel/News/detail.
Wie man die Werte News/detail über cooluri aus der URL entfernen kann, habe ich nicht ermitteln können. Statt dessen hilft hier ein Blick in die Dokumentation der news Extension: Removing controller and action arguments from URL:

plugin.tx_news {
    settings {
        link {
            skipControllerAndAction = 1
        }
    }
}

Das geht für den Fall, dass es eine eigene Detailseite für die Anzeige der News gibt.