[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
einfaches URL-Rewrite als AddOn in Redaxo5 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

einfaches URL-Rewrite als AddOn in Redaxo5

23. Mai 2017, 13:10

Ich versuche, einen eigenen kompakten URL-Rewriter zu bauen. Nachdem ich einen solchen für Redaxo 4 in Betrieb hatte, komme ich beim Umbau für Redaxo 5 nicht weiter.

Im Frontend wird zwar der gewünschte URL im Adressfeld des Browsers angezeigt, sowohl nach einem Klick auf "Artikel anzeigen" im Backend als auch im Falle von Links. Angezeigt wird aber immer nur der Inhalt der Startseite, unabhängig von dem Artikel, bei dem ich im Backend "Artikel anzeigen" anklicke. Im Seiten-Template liefert $this->getArticleId() tatsächlich immer den Wert 1 für die Startseite.

Der gewünschte URL ist von dieser Form: /home/kategorie1/kategorie2/.../artikel.html

Es folgen die relevanten Programmausschnitte in boot.php, lib/class.my_urlrewriter.php, .htaccess[/i].

Code: Alles auswählen

rex_extension::register('URL_REWRITE',array('myUrlRewriter','rewrite'));

Code: Alles auswählen

class myUrlRewriter {
   function rewrite($params) {
      $arr_params=$params->getParams();
      $art_id=$arr_params[id];
      $article=rex_article::get($art_id);
      $url="";
      if(rex::isBackend()):
        if(strpos($_SERVER['REQUEST_URI'],"?page=content")>0):
          $url=set_art_url($article);  // setzt und liefert den URL (als Spaltenwert in rex_article)
        endif;
        if(empty($url)):
          $url="/".$article->getValue("art_custom_url");
          #   dieser rex_article-Parameter enthaelt den gewuenschten URL
          endif;
        endif;
      return $url;
      }
   }

Code: Alles auswählen

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^redaxo/.*
RewriteCond %{REQUEST_URI} !^media/.*
RewriteCond %{REQUEST_URI} !^google(.*).html*
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]
Wolfgang Busch

w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

14. Jun 2017, 09:48

Schade, schon mehr als 100 Blicke auf meine Frage, aber keinerlei Antwort!

Weiß keiner der Experten einen Rat? Oder habe ich nur etwas Offensichtliches übersehen?
Wolfgang Busch

NorbertK
Beiträge: 85
Registriert: 24. Mai 2017, 12:41

Re: einfaches URL-Rewrite als AddOn in Redaxo5

14. Jun 2017, 17:38

Hallo Wolfgang,

warum nimmst Du nicht X-Core?

Schon Seo42 war klasse, aber X-Core gefällt mir noch besser!

Also wenn es was Fertiges gibt das so einfach zu integrieren ist sehe ich keinen Sinn darin sich selbst zu plagen.
Freundliche Grüße aus Bagband

Norbert

Benutzeravatar
ds
Admin
Beiträge: 247
Registriert: 10. Okt 2006, 22:58
Wohnort: Berlin
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

15. Jun 2017, 09:46

Oder auch yrewrite von Yakamara.

w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

22. Jun 2017, 18:57

yrewrite ist natürlich bekannt. Ich habe aber Interesse daran, die Rewrite-Aufgabe auch selbst zu lösen. Nehmt es als eine Art Entdeckerehrgeiz, verbunden mit der Suche nach Erkenntnisgewinn.
Es kann doch eigentlich nicht so schwer sein. Zumindest waren die ersten AddOns von Markus Staab (Redaxo 4) relativ einfach zu lesen.
Wolfgang Busch

w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

28. Jun 2017, 17:56

Vielleicht noch eine Ergänzung:
Wenn ich in der function rewrite($params) $_SERVER["REQUEST_URI"] nutze und als URL zurückgebe, liefert rex_getUrl() auch den richtigen URL.
Und noch einmal die wichtigste Detailfrage:
Liegt es an der RewriteRule, dass ich immer nur die Startseite (artcle_id=1) angezeigt bekomme?
Wolfgang Busch

w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

4. Jul 2017, 19:51

Mit einer umfangreichen RewriteRule-Liste - eine Art pathlist - kommt man tatsächlich zum Ziel. Ist aber umständlich und aus Performance-Gründen vermutlich auch nicht so gut...

Stattdessen hilft eine zusätzliche Erweiterung des Extension Point FE_OUTPUT weiter. Jemand interessiert? Ich könnte ein Beispiel-AddOn bereitstellen.
Wolfgang Busch

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: einfaches URL-Rewrite als AddOn in Redaxo5

6. Jul 2017, 09:26

w.busch hat geschrieben:Jemand interessiert? Ich könnte ein Beispiel-AddOn bereitstellen.
Ja klar. Warum einen gut supporteten und dokumentierten Rewriter von Yakamara nehmen, wenn ich auch was obskures selbstgebasteltes nutzen kann? Meine Kunden bezahlen mich schließlich nicht für ein flexibles und stabiles System... :wink:

w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

13. Jul 2017, 14:50

Nachdem ich über 2300 Zugriffe auf meine Anfrage zähle und Interessierte mich auch persönlich kontaktiert haben, habe ich meine Lösung als AddOn veröffentlicht (Name: Einfaches URL-Rewrite, key: url_simple_rewrite).

Das AddOn enthält eine genaue Beschreibung der Funktionsweise eines URL-Rewriters, und es kann als Bauplan für Praxis-nähere URL-Rewriter genommen werden. Tatsächlich ist auf dieser Basis die Migration meines unter Redaxo 4 laufenden Rewriters nach Redaxo 5 fast fertig. Werde ich in Kürze auch hochladen.
Wolfgang Busch

w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

25. Aug 2017, 19:28

Ich bin etwas unsicher, ob mein (exemplarischer) URL-Rewriter allen Anforderungen genügt.

In Templates und Modulen stehen zwar Artikel-Id, Sprach-Id etc. wie gewohnt im Artikel-Objekt $this zur Verfügung. Die Funktionen rex_article::getCurrentId() und rex_clang::getCurrentId() liefern aber Daten des Site-Startartikels. Ich sehe im Moment nicht, wie ich das hinbekommen könnte. Als Ersatz biete ich vorsichtshalber Funktionen my_article::getCurrentId() und my_clang::getCurrentId() an.

Ist das ein schwerwiegendes Manko?
Wolfgang Busch

w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

1. Okt 2017, 12:05

Ich habe das AddOn inzwischen so ergänzt, dass die Funktionen rex_article::getCurrentId() und rex_clang::getCurrentId() die Daten des aktuellen Artikels liefern. Musste nur die entsprechenden Properties der beiden Klassen neu setzen.
Wolfgang Busch

Benutzeravatar
ds
Admin
Beiträge: 247
Registriert: 10. Okt 2006, 22:58
Wohnort: Berlin
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

1. Okt 2017, 14:53

Ich würde dir empfehlen, im ersten Schritt das AddOn bei GitHub anzulegen. Und wenn es bereits produktionsfertig ist, kannst es anschließend noch im Installer veröffentlichen, das bedeutet, im Addonverzeichnis auf redaxo.org hochzuladen.

GitHub übrigens deshalb, weil dort alle Möglichkeiten gegeben sind, um das AddOn zu finden, zu begutachten, (gemeinsam) weiterzuentwickeln, zu testen und runterzuladen. Kaum jemand hat interesse, irgendwelche unversionierten Zip-Files irgendwo runterzuladen oder per Mail zu erhalten. Überspitzt gesagt gilt: Was nicht bei GitHub (oder ähnlichen Anbietern wie Gitlab oder Bitbucket) vorliegt, existiert nicht (in der Open-Source-Welt).

w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

15. Okt 2017, 13:58

Hallo Dirk,

> ...produktionsfertig ...
das AddOn schien mir schon genügend weit entwickelt, um es gleich ins Redaxo-Addon-Verzeichnis hochzuladen. Habe allerdings anschließend noch die eine oder andere Korrektur ergänzt und erneut hochgeladen. Hätte ich vielleicht besser von Anfang an versioniert gemacht.

> im ersten Schritt das AddOn bei GitHub anlegen...
Warum der Umweg über GitHub? Habe ich nicht verstanden. Das AddOn hat nur für Redaxo einen Sinn; bei GitHub ist es vermutlich unter ganz vielen Themen einfach unsichtbar. AddOns für Redaxo 4 habe ich auch immer einfach hochgeladen.
> auf GitHub weiterzuentwickeln, zu testen und runterzuladen...
Schauen die Software-Entwickler nicht auch im Redaxo-Forum nach Reaktionen, Fehlermeldungen, Erweiterungswünschen?
Welche Rolle für Entwickler spielen die "friends of redaxo"?
Ist es erwünscht/geduldet, wenn man ein neues AddOn im Forum ankündigt?
Wolfgang Busch

Benutzeravatar
ds
Admin
Beiträge: 247
Registriert: 10. Okt 2006, 22:58
Wohnort: Berlin
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

15. Okt 2017, 18:49

Hey Wolfgang,
Warum der Umweg über GitHub?
GitHub soll gar kein Umweg sein, sondern stattdessen der eine wichtige Ort, an dem entwickelt wird. Es ist natürlich keine Pflicht, dort zu entwickeln, aber für mein Gefühl kriegen Projekte, deren Code nicht sichtbar und über typische Werkzeuge (Pull Requests, Issues, Tags, Suche und die vielen anderen Features, die GitHub anbietet) bearbeitbar ist, keinerlei Aufmerksamkeit. Ich wollte dir deshalb empfehlen, deinen Code dort zu entwickeln, aber das war wirklich nur ein Vorschlag.
Schauen die Software-Entwickler nicht auch im Redaxo-Forum nach Reaktionen, Fehlermeldungen, Erweiterungswünschen?
Manche sicherlich, aber im Laufe der Jahre hat die Relevanz des Forums deutlich abgenommen. Viel Austausch passiert im Slack, und die Entwicklung findet quasi vollständig bei GitHub statt.
Welche Rolle für Entwickler spielen die "friends of redaxo"?
FOR bringt ganz viele Vorteile für Entwicklende und für die Community: Die Motivation war, Projekte langfristig abzusichern, so dass wichtige AddOns nicht in Gefahr laufen, nicht mehr gepflegt zu werden. Aber auch die Qualität der Projekte soll dadurch gesteigert werden, dass nicht nur eine Person daran entwickelt, sondern die Gemeinschaft. Dadurch können sich Einzelne auf die Bereiche konzentrieren, die ihnen Spaß machen, und generell sorgt die Abstimmung und der Austausch für mehr Spaß und Motivation.
Ist es erwünscht/geduldet, wenn man ein neues AddOn im Forum ankündigt?
Ich denke schon, klar. Nicht nur im Forum, gerne auch überall anders. Ich kann immer den Slack-Chat empfehlen, dort sind inzwischen knapp 300 Leute.

Viele Grüße!
_Dirk

w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

17. Okt 2017, 18:45

Hallo Dirk,
danke für die Hinweise. Ich habe die Beschreibung des AddOn url_simple_rewrite noch einmal überarbeitet und versuche mich daran, nun alles nach GitHub zu transportieren. Bin jetzt dort angemeldet. GitHub Desktop ist installiert. Upload... kommt morgen.
Wolfgang Busch

w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

7. Nov 2017, 12:57

Wolfgang Busch

w.busch
Beiträge: 68
Registriert: 29. Nov 2011, 16:16
Wohnort: 38173 Dettum
Kontaktdaten: Website

Re: einfaches URL-Rewrite als AddOn in Redaxo5

16. Nov 2017, 16:51

Ich habe jetzt auch meinen schon unter Redaxo 4 verfügbaren Rewriter an Redaxo 5 angepasst, ihn um die Mehrsprachigkeit erweitert und vorerst mal nach GitHub hochgeladen: https://github.com/WolfgangBusch/url_path_rewrite
Das AddOn hat den key url_path_rewrite und denselben Bauplan wie url_simple_rewrite.
Wolfgang Busch

Zurück zu „AddOns / Packages [R5]“