TYPO3: News und CoolURI mit ID bzw Datum

TYPO3

Für kleinere Projekte setze ich hin und wieder CoolURI zum erstellen von lesbaren URLs ein. Setzt man zusätzlich die Erweiterung tt_news ein, so läuft man wesentlich eher Gefahr, doppelte URLs zu erzeugen. In diesem Fall wäre nur noch eine News in der Single-Ansicht erreichbar. Mit einem kleinen Trick lässt sich dieses beheben.

CoolURI konfigurieren

Der Erweiterung CoolURI wird über eine XML-Datei formaitert, welche im Verzeichnis typo3conf zu finden ist.

Damit auch News-Links manipuliert werden können, befindet sich im Bereich cooluri->uriparts folgender Block:

1
2
3
4
5
6
7
8
9
10
<part>
    <parameter>tx_ttnews[tt_news]</parameter>
    <lookindb>
        <to>SELECT title FROM tt_news WHERE uid=$1</to>
        <translatetoif>
            <match>^[0-9]+$</match>
        </translatetoif>
        <t3conv>1</t3conv>
    </lookindb>
</part>

Somit würden die Titel der News für die URL verwendet. erstellt man nun zwei News mit dem gleichen Titel, so stößt man auf mein Problem.

Man hat nun mehrere Möglichkeiten dieses Problem zu lösen. Zwei möchte ich hier vorstellen.

News-Links mit ID oder Datum

Um die Links mit der ID des Datensatzes oder dem Datum zu versehen, ist nur eine Änderung an der SQL-Abfrage nötig.

News-Links mit ID

1
2
3
4
5
6
7
8
9
10
<part>
    <parameter>tx_ttnews[tt_news]</parameter>
    <lookindb>
        <to>SELECT CONCAT( uid , '_', title ) FROM tt_news WHERE uid=$1</to>
        <translatetoif>
            <match>^[0-9]+$</match>
        </translatetoif>
        <t3conv>1</t3conv>
    </lookindb>
</part>

News-Links mit Datum

1
2
3
4
5
6
7
8
9
10
<part>
    <parameter>tx_ttnews[tt_news]</parameter>
    <lookindb>
        <to>SELECT CONCAT( CAST( DATE_FORMAT( FROM_UNIXTIME( datetime ) , GET_FORMAT( DATE, 'ISO' ) ) AS char( 10 ) ) , '_', title ) FROM `tt_news` WHERE uid=$1</to>
        <translatetoif>
            <match>^[0-9]+$</match>
        </translatetoif>
        <t3conv>1</t3conv>
    </lookindb>
</part>

Ich hoffe dieser Tipp war für einige hilfreich. Ein schönes, langes Wochenende wünsche ich euch.

FacebookRSS Feeds

7 Kommentare zu “TYPO3: News und CoolURI mit ID bzw Datum”

  1. Links 27 » WoWa-Webdesign Friedrichshafen, Bodensee

    9. Oktober 2011 um 09:33

    […] Und schon wieder ein TYPO3-Tipp vom Nikonierer. Dieses Mal geht es darum, doppelte URLs bei Verwendung von CoolURI zu verhindern. http://nikonierer.de/typo3-news-cooluri-id-datum/ […]

  2. Florian

    2. Dezember 2011 um 12:07

    Hey gerade gebraucht, sehr nützlich! Vielen Dank!

  3. christian

    19. Dezember 2011 um 13:46

    Hey,
    danke erstmal für die Infos. Also ich sehr lange rumgedoktert, doch wenn ich zu dem Titel der News noch die Uid oder das Datum haben möchte zeigt er mir nur noch

    /single_news/5

    an. Muss ich irgendwo anders noch etwas eintragen?

    Greetz
    Chris

  4. Marcel

    19. Dezember 2011 um 17:52

    Hallo Chris,

    im ersten Moment fällt mir nichts ein. Allerdings nutze ich CoolURI recht selten und müsste mir das Ganze nochmal anschauen. Wenn ich etwas finden sollte, melde ich mich natürlich nochmal. :)

    Gruß
    Marcel

  5. Bastian

    3. Januar 2012 um 18:51

    Hallo und danke für den Code, das ist sehr nützlich.

    Muss bei den beiden Varianten mit ID und Datum aber nicht auch das “WHERE uid=$1″ mit ran? Bei mir wurde nämlich jede News immer auf den selben News-Artikel verwiesen, habe es nun ergänzt und nun passt es.

  6. Marcel

    3. Januar 2012 um 19:50

    Hallo Bastian,

    beim ersten Beispiel habe ich die WHERE-Klausel tatsächlich vergessen. Danke für den Hinweis. Bei dem zweiten Beispiel war aber alles korrekt.

    Gruß
    Marcel

  7. christian

    4. Januar 2012 um 16:28

    Oh man,
    danke für den Kommentar Bastian! :-)
    Hab jetzt das =$1 hinten mit angefügt und siehe da, es funktioniert!
    Super.

    Vielen Dank

    Greetz Chris