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 in der Form category1/category2/…/categoryN/article generiert und bildet so den Kategorien-Pfad eines Artikels ab. Für die zugehörigen Kategorie- und Artikelbezeichnungen werden Meta-Infos eingerichtet und als zusätzliche Artikelparameter genutzt. Die Sprache einer Seite kann wahlweise im URL oder durch eine Session-Variable gekennzeichnet werden.
Artikel können auch über den Redaxo-Standard-URL index.php?article_id=ID&clang=CID aufgerufen werden.
Es sind keine besonderen RewriteRules erforderlich.

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 werden bei der De-Installation nicht wieder entfernt.
cat_dirname : “Verzeichnisname” für jede Kategorie, Default: Kategoriename (catname)
art_basename : “Dateiname” für jeden Artikel, Default: Artikelname mit Namenserweiterung(name.html), für Kategorie-Startartikel wird derArtikelname durch “index” ersetzt (“Dateiname”: index.html)
art_custom_url : aus den obigen Daten generierter Artikel-URL (Custom URL, ohne führenden “/”, ablesbar (readonly) in den Metadaten des Artikels, den Wert (mit führendem “/”) liefert die Standardfunktion rex_getUrl(article_id), er ist sprach-unabhängig
Erlaubte Zeichen für die Meta Infos sind: Buchstaben, Ziffern, Punkt(.), Minuszeichen(-), Unterstrich(_), nicht erlaubt sind Umlaute oder 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 Erweiterung des Custom URL um den Sprachcode in der Form en/cat_dirname1/… oder
eine Erweiterung des Custom URL um einen 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

2.0

Für REDAXO
^5.1.0
Veröffentlicht am
23.06.2019

Der Code ist vollständig überarbeitet und mit ‘error_reporting(E_ALL);’ überprüft.
Der Extension Point FE_OUTPUT wird nicht benötigt und daher nicht mehr benutzt.
Der gesamte Source-Code ist auf UTF-8 umgestellt.
Alle im AddOn verwendeten Functions sind auf zwei Klassen im Ordner lib verteilt. Hinzu kommen zwei Utility-Funktionen im Ordner functions.

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).