Noch flexiblere URLs mit realurl: Alternative realurl path
Bei manchen Projekten gelangt man schnell an die Grenzen von realurl und der mitgeliefertem realurl advanced Klasse zum Erzeugen der Seitenpfade.
Zum Beispiel:
- jede Seite in der Rootline benötigt einen Eintrag im Pfad. Darum haben Seiten weit unten im Seitenbaum immer einen langen Pfad. Das kann unter Umständen - auch in Anbetracht von Google - nicht erwünscht sein.
- Eine komplett eigene Definition eines individuellen Pfad ist praktisch kaum möglich. (Mal von dem Überschreiben des gecachten Wertes mit Hilfe des Submoduls unter Info abgesehen)
- Externe URLs werden nicht direkt verlinkt
- Mehrsprachige URLs machen u.U. Probleme bei einigen Feldern.
- Keine Unterstützung von Workspaces.
- doppelte Seitennamen in der gleichen Ebene führen zu Kollisionen und Problemen
Alternativer Seitenpfad:
All diese Limitierungen sind mit der Extension "aoe_realurlpath" aufgehoben. Dank der flexiblen Konfigurationsmöglichkeiten von realurl kann man eine alternative Funktion für das Erzeugen des Seitenpfades angeben. Dazu muß die realurl configuration wie folgt angepasst werden:
... 'pagePath' => array ( 'type' => 'user', 'userFunc' => 'EXT:aoe_realurlpath/class.tx_aoerealurlpath_pagepath.php:&tx_aoerealurlpath_pagepath->main', 'spaceCharacter' => '-', 'languageGetVar' => 'L', 'rootpage_id' => '1', 'segTitleFieldList'=>'alias,tx_aoerealurlpath_overridesegment,nav_title,title,subtitle', ), ... </span
Wer das ganze nicht von Hand eintragen möchte, installiert einfach die Extension "danp_realurlconfigurator", die in der neusten Version mit einer default configuration für aoe_realurlpath mitkommt.
Was macht die Erweiterung:
- Seitenpfade können unabhängig von der Position im Seitenbaum gesetzt werden.
- Verschiedene Felder und Optionen um möglichst SEO freundliche URLs automatisch zu generieren.
- Support für Mehrsprachigkeit
- Erzeugt direkte Links zu allen Shortcut-typen und externen URLs
- automatische Kollisionserkennung
Die Seiteneigenschaften werden um folgende Felder erweitert:
- Feld zum Überschreiben des kompletten Pfades
- Feld zum Überschreiben des Pfadsegmentes
- checkbox "entferne diese Seite aus der Mitte von Pfaden" (exclude page from middle).
Die Extension kommt mit einem Submodul für das Info-Modul, in dem man die gecachten URLs sehen und löschen kann:
Pfad und URL insides:
Ein Pfad in realurl besteht aus:
<preVars><pagePath><postVars><fileName>
Wobei preVars und postVars Parameter codieren können (wie newsids etc..) und nichts mit dem eigentlichem Seitenpfad zu tun haben. Der Seitenpfad aber ist der eigentliche sprechende Pfad für eine Seite in TYPO3. Die Abbildung Seitenpfad <->Pageid muß eindeutig für jede Sprache und jeden Baum sein. Die einzelnen Pfadabschnitte nennt man Pfadsegment.
Der Seitenpfad wird nun wie folgt generiert:
- Ist das Feld "override url path" gesetzt für eine Seite, wird direkt dieser Wert verwendet
- Sonst wird der Pfad automatisch generiert: Dazu wird die Rootline (Pfad von der Seite zum Root des Baumes) ermittelt. Jede Seite in diesem Pfad erzeugt ein Pfadsegment. Außer die Seite ist in der Mitte des Pfades und die Checkbox "exclude from middle" ist gesetzt.
- Für den Eintrag als Pfadsegment wird der erste nicht leere Wert eines Feldes im Seitenheader verwendet, typischerweise ist das diese Reihenfolge: 'alias, tx_aoerealurlpath_overridesegment, nav_title, title, subtitle'
- Bevor der Pfad zurückgegeben wird, wird geprüft ob es eine Kollision gibt, also ob der Pfad schoneinmal für eine andere Seite existiert. Wenn ja wird automatisch die UID der Seite angehangen um keine unzugreifbaren URLs zu erzeugen.
Installation / Configuration:
- Extension aus dem TER installieren
- Bei Bedarf die Checkboxen im Extensionmanager setzen (empfohlen).
- realurl configuration anpassen (entweder manuell - siehe Code oben)
- Das geht am schnellsten mit der Erweiterung "danp_realurlconfiguration":
- Extension downloaded und Installieren, beim installieren die Checkbox "include realurlconf" setzen
- BE-Modul unter Tools aufrufen und den Punkt "Base Configuration" wählen: Dort die Datei realurlconf.php erzeugen lassen und den Defaultinhalte für "alternativen Seitenpfad" per Klick kopieren
- Fertig.
- Das geht am schnellsten mit der Erweiterung "danp_realurlconfiguration":

