AddOn


path-basiertes URL-Rewrite für Redaxo 5

Beschreibung

Dieses AddOn ist eine Erweiterung des Standard-Rewriters und nutzt den Extension Point URL_REWRITE.
Der Artikel-URL wird automatisch generiert in der Form art_custom_url=cat_dirname1/cat_dirname2/…/art_basename
und bildet so den Kategorien-Pfad eines Artikels ab.
Die zugehörigen Bezeichnungen werden als zusätzliche Meta Infos eingerichtet. Daher sollte das AddOn metainfo installiert sein.
Die Sprache einer Seite kann wahlweise im URL oder durch eine Session-Variable gekennzeichnet werden.
URL und Sprachkennzeichnung identifizieren einen Artikel im Frontend eindeutig. Eine Erweiterung des Extension Point FE_OUTPUT ermöglicht seine Ausgabe ohne besondere RewriteRules.
Seiten können auch über den Redaxo-Standard-URL index.php?article_id=ID&clang=CID aufgerufen werden.

Elemente der URL-Darstellung:

Für die Darstellung eines URLs werden bei der Installation des AddOns die folgenden Meta Infos angelegt (als Zeilen in der Tabelle rex_metainfo_field und als Spalten in der Tabelle rex_article). Sie sind für alle Sprachen gleich. Sie werden bei der De-Installation nicht wieder entfernt.
cat_dirname : “Verzeichnisname” für jede Kategorie, der Wert wird im Menü ändern der Kategorie eingegeben, Default: Kategoriename (catname)
art_basename : “Dateiname” für jeden Artikel, der Wert wird im Menü Metadaten des Artikels eingegeben, Default: “Artikelname.Namenserweiterung” (name.html), für Kategorie-Startartikel wird der Artikelname durch “index” ersetzt (“Dateiname”: index.html)
art_custom_url : aus den obigen Daten generierter Artikel-URL (Custom URL, ohne vorangestellten “/”), ablesbar (readonly) im Eingabefeld des Menüs Metadaten des Artikels, den Wert (mit vorangestelltem “/”) liefert die Standardfunktion rex_getUrl
Erlaubte Zeichen für die Meta Infos sind: Buchstaben, Ziffern, Punkt(.), Minuszeichen(-), Unterstrich(_), keine Umlaute, keine Leerzeichen. Startartikelname und Namenserweiterung können auch anders konfiguriert werden.

Kennzeichnung der Sprache:

Die Kennzeichnung der Sprache erfolgt mittels der definierten Sprachcodes, wahlweise durch eine Ergänzung des Custom URL um – den Sprachcode in der Form en/cat_dirname1/… oder – einen URL-Parameter in der Form …/art_basename?language=en oder – eine Session-Variable $_SESSION[‘language’]=‘en’. Ein Sprachwechsel erfolgt hier mittels URL-Parameter im entsprechenden Link (vergl. vorige Zeile).
Die Art der Kennzeichnung ist konfigurierbar. Bei der Standardsprache und damit auch bei einsprachigen Installationen entfällt sie ganz.


Umsetzung

Wolfgang Busch

An der Windmühle 3
38173 Dettum

busch-dettum.de


Versionen

1.1.1

Für REDAXO
^5.1.0
Veröffentlicht am
22.12.2017

Es werden jetzt im Artikel-Kontext keine rex_view::success-Meldungen mit dem art_custom_url mehr ausgegeben, sondern nur noch rex_view::warning-Meldungen.

1.1.0

Für REDAXO
^5.1.0
Veröffentlicht am
20.12.2017

Links auf Kategorie-Startartikel in der Form “…/” führen jetzt nicht mehr auf den NotFound-Artikel, sondern werden wie der entsprechende Link in der Form “…/index.html” angezeigt.

1.0.5

Für REDAXO
^5.1.0
Veröffentlicht am
02.12.2017

Der englische Sprachzweig ist jetzt richtig angelegt (Datei en_gb.lang im Ordner lang). Eine Übersetzung der gesamten Beschreibung fehlt weiterhin.

1.0.4

Für REDAXO
^5.1.0
Veröffentlicht am
01.12.2017

Die Software ist natürlich gemäß MIT-Lizenz frei nutzbar, nachlesbar in der zusätzlichen Datei LICENSE.md.
Die ungenutzte Datei uninstall.php entfällt jetzt.
Der englische Sprachzweig ist angelegt (Datei en_en.lang im Ordner lang). Eine Übersetzung der gesamten Beschreibung fehlt noch.

1.0.3

Für REDAXO
^5.1.0
Veröffentlicht am
01.12.2017

2 neue Utility-Funktionen zur Nutzung im Frontend: ein Menü zur Sprachauswahl im aktuellen Artikel und ein Auswahlmenü zum Wechsel zwischen konfigurierter URL-Form und Redaxo-Standard-URL, wobei die gewählte Sprache beibehalten wird.

1.0.2

Für REDAXO
^5.1.0
Veröffentlicht am
22.11.2017

An etlichen Stellen werden jetzt anstelle der Methode getValue(“value”) die Redaxo 5-spezifischen Methoden getClang(), getParentId(), IsStartArticle(), getTemplateId(), IsStartArticle() eingesetzt.

1.0.1

Für REDAXO
^5.1.0
Veröffentlicht am
21.11.2017

Bei leerer Dateinamenserweiterung wird nicht jedesmal wieder eine Warnung ausgegeben. Das AddOn kann ja ohne Dateinamenserweiterung konfiguriert sein.

Jetzt sind nebeneinander mehrere Dateinamenserweiterungen möglich, also z.B. nicht nur .html, sondern daneben auch .php oder .css oder …

1.0.0

Für REDAXO
^5.1.0
Veröffentlicht am
16.11.2017

Dieses AddOn ist eine Erweiterung des Standard-Rewriters und nutzt den Extension Point URL_REWRITE. Der Artikel-URL wird automatisch generiert in der Form art_custom_url=cat_dirname1/cat_dirname2/…/art_basename
und bildet so den Kategorien-Pfad eines Artikels ab.

Ein ähnliches AddOn steht auch für Redaxo 4 zur Verfügung (Key: url_generator_rewrite).