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 MetaInfos 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.
In der .htaccess-Datei sind keine besonderen RewriteRules erforderlich.
Elemente der URL-Darstellung:
Für die Darstellung eines URLs werden bei der Installation des AddOns die folgenden MetaInfos 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, er ist für alle Sprachversionen gleich, den Wert (mit führendem "/") liefert die Standardfunktion rex_getUrl(articleid)
Startartikelname und Namenserweiterung können auch anders konfiguriert werden.
Erlaubte Zeichen für die MetaInfos sind Buchstaben, Ziffern, Punkt(.), Minuszeichen(-), Unterstrich(). Nicht erlaubt sind u.a. Umlaute oder Leerzeichen.
Kennzeichnung der Sprache:
Die Kennzeichnung der Sprache erfolgt mittels der definierten Sprachcodes, wahlweise durch
eine Erweiterung des angezeigten URLs um den voran gestellten Sprachcode (/en/cat_dirname1/...) oder
eine Erweiterung des angezeigten URLs um einen language-Parameter (.../art_basename?language=en) oder
eine Session-Variable $_SESSION['language']='en', ein Sprachwechsel erfolgt hier mittels language-Parameter im Link (vergl. vorige Zeile).
Die Art der Kennzeichnung ist konfigurierbar. Bei der Standardsprache und damit auch bei einsprachigen Installationen entfällt sie ganz.
busch-dettum.de/public/it/url_path_rewrite.html
Umsetzung
Wolfgang Busch
An der Windmühle 3 38173 Dettum busch-dettum.deVersionen
2.3
Die Dateien im Ordner lib und die Klassennamen darin sind umbenannt.
Konstanten werden nicht mehr per 'define(...)' vereinbart, sondern als Klassen-Konstanten definiert.
Unter bestimmten Bedingungen scheiterte die Installationsprozedur. Der Fehler ist behoben.
2.2
Im Quellcode sind jetzt einige überflüssige Teile entfernt. U.a. ist der Ordner functions entfallen. Die dort enthaltenen Funktionen sind für das AddOn nicht notwendig.
2.1
Aus systematischen Gründen wurde wieder eine Datei 'help.php' eingefügt.
2.0
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
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
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
Der englische Sprachzweig ist jetzt richtig angelegt (Datei en_gb.lang im Ordner lang). Eine Übersetzung der gesamten Beschreibung fehlt weiterhin.
1.0.4
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
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
An etlichen Stellen werden jetzt anstelle der Methode getValue("value") die Redaxo 5-spezifischen Methoden getClang(), getParentId(), IsStartArticle(), getTemplateId(), IsStartArticle() eingesetzt.
1.0.1
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
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).