Sprechende URL’s in eigener TYPO3 Extension RealUrl

Suchmaschinenoptimierte URL’s in eigener TYPO3 Extension: Wir erstellen eine Testextension und erklären wie man sich die perfekte URL dazu generiert.

Extension

Unsere Extension heißt Jobs und unser Model dazu Job. In diesem Beispiel gibt es ein Frontend Plugin das Jobsansicht heißt. Es gibt eine List und eine Show Action. Wir haben im Model ein Feld Titel, Beschreibung und Url. Unsere Unterseite heißt List. In dieser Seite befindet sich noch eine weitere Unterseite die „Detail“ heißt. In der Listansicht werden alle Jobs als Liste ausgeben und jeder hat einen Link:

URL für Detailansicht:

Typoscript

Mit diesem Code wird das Argument Controller aus der URL ausgeblendet.

Die Url müsste jetzt wiefolgt lauten:

realurl_conf.php

Wichtig: Realurl muss auf manuelle Konfiguration eingestellt sein (Erweiterungsmanager > Realurl > Konfiguration > Path to configuration file). Setzt hier euren Dateipfad ein. In diesem Beispiel typo3conf/realurl_conf.php. Eine gute Beispielkonfiguration, die schon viel abdeckt findet ihr hier.

Achtung: Je nach dem wie ihr euren link mit f:link generieren lasst, musst ihr verschiedene Variablen abfangen (zB wenn ihr für die Detailansicht ein anderes FE Plugin verwendet oder dergleichen). Ihr könnt sehr schon an der URL sehen was noch fehlt 🙂

Im Code sind Kommentare mit Hinweisen.

Achtung: in neueren RealUrl Versionen als in diesem Beispiel müsst ihr alles URL-Daten (Relaurl Cache) löschen, um die Änderungen zu sehen.
Nach einfügen des Codes müsste die URL jetzt wiefolgt lauten:

Das geht aber noch besser 🙂

Pfad manipulieren

Wir möchten das der Aufbau logischer wird. Ganz unten in der realurl_conf.php haben wir unsere User funktionen eingefügt.

Aufrufen der Funktion:

Endergebnis:

Das kann jeder für sich entscheiden wir für Ihn die URL optimal ist.

Fallback für URL Feld

Wir wollen jetzt noch ein Fallback einfügen, falls das Feld URL nicht ausgefüllt ist (ja, man könnte es einfach mit Pflichtfeld lösen). Falls man es nicht als Pflichtfeld konfigurieren will wäre dies ein Lösungsansatz:

Durch den Befehl „coalesce“  wird nur das Feld „url“ zum generieren der URL verwendet, wenn es ausgefüllt ist. Sonst nimmt RealUrl das Feld „titel“.

Getestet mit

TYPO3 7.6.14
Realurl 2.0.14

5 Kommentare

Füge deinen hinzu →

  1. Robert Wildling

    Juni 28, 2019 — 11:54 am

    Warum lautet beim TypoScript Snippet das element, das den Controller ausblenden soll, „features“? Ist das ein extbase standard?

    • Stefan Schoner

      Juli 1, 2019 — 7:04 am

      Ist eine Standardfunktion und funktioniert bei jeder eigenen Extension. Bei TYPO3 9 LTS braucht man das aber nicht mehr. Da gibts andere Wege für saubere speaking urls.

  2. Sehr gute Anleitung!
    Noch eine Frage: Kann man die Funktionen user_decodeSpURL_preProc und user_encodeSpURL_postProc umbenennen?
    Für den Fall, dass für die realurl single-view für die news-Extension auch dieselbe Funktion benutzt

    • Hi Joe,
      Danke für dein Kommentar:
      Du kannst die funktion benennen wie du willst, sofern du sie dann mi tdem korrenten Namen aufrufst.

  3. Vielen Dank für die tolle Anleitung! Hat alles auf Anhieb funktioniert!

Schreibe einen Kommentar