Advanced Mod Rewriting Contenido 4.4.4
Re: Lösungsvergleich von Stese's Bundle und 4.5.3
Ja das ist leider so. Ich habe aber alle meine Änderungen mit einem commentEdanis hat geschrieben:Die Lösung von Stese (4.4.4) hat dem gegenüber den Vorteil dass die auch Artikel berücksichtigt. Der Nachteil wäre nur dass die nicht in Contenido aufgenommen ist, bei Erweiterungen muss erneut angepasst werden.
Code: Alles auswählen
// edit by stese
Genau das war bei mir der tiefere Sinn, da ich eigentlich keine Lust habe jedesmal alle eigenen Module abzuändern bzw. Fremdmodule erstmal zu begreifen wie sie aufgebaut sind um sie zu ändern.Edanis hat geschrieben:Was mir noch aufgefallen ist, in 4.5.3 müssen die Module dafür sorgen die Moderewrite-komforme Links zu bekommen, es müssen also alle Module auf Modrewrite umgeschrieben werden. Die Stese's Lösung lässt die Module dagegen in Ruhe, ändert dafür wie gesagt viel in Contenidodateien.
Ist bei meiner Version kein Problem - in der .htaccess bei aufgelösten Pfaden einfach ein [QSA,L] hinten ansetzen statt nur dem [L]. QSA heisst soviel wie QueryStringAppend. Bei mir werden alle Parameter die nicht zu Contenido und zur Artikel-/Kategoriebestimmung gehören automatisch als Argumente hinten an die .html angefügt.Edanis hat geschrieben:Wie ist aber in beiden Versioen mit GET - Parameter, ist ein Lösungsansatz vorhanden um zB. Seitenangaben der Artikelliste wie "&page=2" in der URL zu verschlüsseln und aufzulösen? Auch das Problem mit "&m=&s=" wurde zum Beispiel bereits angesprochen.
also in der 4.4.5 werde ich es so schnell nicht schaffen, weil ich die gar nicht habe und ich diese auch nicht nutzen werde - ich hab sie in der 4.5.3 beta vorliegen und dieses bundle werde ich hier auch veröffentlichen ... wenn mir die zeit bleibt werde ich auch vorn die manuelle installationsroutine mal abändern. aber termine versprechen kann ich nicht, da es momentan ziemlich stressig zugeht, dass ihc mich nicht um sowas kümmern kann.
Re: Lösungsvergleich von Stese's Bundle und 4.5.3
Hallo Stese, so früh schon (oder so spät noch ?) auf jeden Fall so schnell mit der Antwort, danke
Aber wie ist es in 4.5.x, ist etwas vorgesehen worden um Folgeartikel anzusprechen und GET Parameter zu übermitteln, ich möchte ungern das Rad nochmal erfinden.
Gruss, Edward
Ist eine gure Idee die das Problem natürlich reduziertstese hat geschrieben:Ja das ist leider so. Ich habe aber alle meine Änderungen mit einem commentausgestattet, so dass man danach Dateiübergreifend suchen kann.Code: Alles auswählen
// edit by stese
Danke für die Erklärng, ich hatte mich schon gefragt was QSA wohl bedeuten mag und es ist mir schon aufgefallen dass es Links wiestese hat geschrieben:Ist bei meiner Version kein Problem - in der .htaccess bei aufgelösten Pfaden einfach ein [QSA,L] hinten ansetzen statt nur dem [L]. QSA heisst soviel wie QueryStringAppend. Bei mir werden alle Parameter die nicht zu Contenido und zur Artikel-/Kategoriebestimmung gehören automatisch als Argumente hinten an die .html angefügt.Edanis hat geschrieben:Wie ist aber in beiden Versioen mit GET - Parameter, ist ein Lösungsansatz vorhanden um zB. Seitenangaben der Artikelliste wie "&page=2" in der URL zu verschlüsseln und aufzulösen? Auch das Problem mit "&m=&s=" wurde zum Beispiel bereits angesprochen.
aufgebaut werden die nach
umgeleitet werden, heute Abend werde ich mich damit näher beschäftigen, jedesmal bekomme ich seit gesten auf einmal keine 404Fehler darauf.
Aber wie ist es in 4.5.x, ist etwas vorgesehen worden um Folgeartikel anzusprechen und GET Parameter zu übermitteln, ich möchte ungern das Rad nochmal erfinden.
Gruss, Edward
Re: Lösungsvergleich von Stese's Bundle und 4.5.3
Irgendwie verstehe ich den Satz nicht. Meine Erweiterung erkennt alle Parameter die nicht zu Contenido direkt gehören, um die URL aufzulösen. Alle diese gefundenen Parameter die per GET an der URL in deinen Modulen angefügt werden, werden ebenfalls automatisch in die ModRewrite URLs übernommen (egal ob 4.4.4 oder 4.5.x, da das Versionsunabhängig in meinen Functions bzw der ModRewrite Klasse geschieht).Edanis hat geschrieben:Aber wie ist es in 4.5.x, ist etwas vorgesehen worden um Folgeartikel anzusprechen und GET Parameter zu übermitteln, ich möchte ungern das Rad nochmal erfinden.
z.b. aus
Code: Alles auswählen
front_content.php?idcat=32&idart=43&page=34
Code: Alles auswählen
/Aktuelles/Sport/Handball.html?page=34
Package contains Contenido 4.4.5 ( http://www.contenido.org/ )
+ copy article ( http://contenido.org/forum/viewtopic.php?t=7150 )
+ advanced mod rewrite ( http://contenido.org/forum/viewtopic.php?p=51253 )
+ advanced mod rewrite database updater ( http://contenido.org/forum/viewtopic.ph ... t=90#50770 )
+ some more file upload fields
Attention:
- package is not testet
- you have to
# change some paths ( search for xampp )
# add your database settings ( contenido/contenido/includes/config.php )
Thanks to
* four for business AG ( http://www.4fb.de/ )
* alexd
* stese aka Stefan Seifarth
* contenido community ( http://www.contenido.org/forum/ )
and now take this: contenido4.4.5_copy_art--mod-rewr.zip
+ copy article ( http://contenido.org/forum/viewtopic.php?t=7150 )
+ advanced mod rewrite ( http://contenido.org/forum/viewtopic.php?p=51253 )
+ advanced mod rewrite database updater ( http://contenido.org/forum/viewtopic.ph ... t=90#50770 )
+ some more file upload fields
Attention:
- package is not testet
- you have to
# change some paths ( search for xampp )
# add your database settings ( contenido/contenido/includes/config.php )
Thanks to
* four for business AG ( http://www.4fb.de/ )
* alexd
* stese aka Stefan Seifarth
* contenido community ( http://www.contenido.org/forum/ )
and now take this: contenido4.4.5_copy_art--mod-rewr.zip
Re: Lösungsvergleich von Stese's Bundle und 4.5.3
Diesmal meine ich nicht Deine Erweiterung, die ist von Grund aus artikelfähig, sondern ob die Standartunterstützung die in 4.5.x eingebaut wurde auch Folgeartikel ünterstützt. Das was ich bisher gesehen habe scheint nur Kategorienamen auflösen und demnach nur Startartikel auffinden zu können. Ob ich es richtig gesehen habe ist meine Fragestese hat geschrieben:Irgendwie verstehe ich den Satz nicht. Meine Erweiterung erkennt alle Parameter die nicht zu Contenido direkt gehören, um die URL aufzulösen. Alle diese gefundenen Parameter die per GET an der URL in deinen Modulen angefügt werden, werden ebenfalls automatisch in die ModRewrite URLs übernommen (egal ob 4.4.4 oder 4.5.x, da das Versionsunabhängig in meinen Functions bzw der ModRewrite Klasse geschieht).Edanis hat geschrieben:Aber wie ist es in 4.5.x, ist etwas vorgesehen worden um Folgeartikel anzusprechen und GET Parameter zu übermitteln, ich möchte ungern das Rad nochmal erfinden.
Zum Verdeutlichen. Für modrewrite ist die Bibliothek functions.pathresolver.php vorgesehen, die beiden ersten Funktionen prResolvePathViaURLNames und prResolvePathViaCategoryNames lösen den durch die dritte Funktion prCreateURLNameLocationString aufgebauten Pfad auf. Und diese erwartet die Artikelangabe in keiner Form. Zum Testen setze ich einfach im Frontendscript cms/front_content.php dieses Code (irgendwo um die Zeile 360):
Code: Alles auswählen
echo "<hr>";
echo "<hr>";
$cat_str = "";
prCreateURLNameLocationString($idcat, "/", $cat_str, true, "", 0, 0, true, true);
echo "?path=$cat_str";
echo "<hr>";
Navigiere ich nun auf die Startseite und hänge an front_content.php eine der obigen ausgaben, zB so
Code: Alles auswählen
http://localhost/contenido-4.5.3/cms/front_content.php?path=Hauptnavigation/Punkt-1/Punkt-1.2
Code: Alles auswählen
http://localhost/contenido-4.5.3/cms/front_content.php?path=News
Nun kann ich die folgende .htacess schreiben (ein Alpha, bitte testen)
Code: Alles auswählen
#
# File E:\Projekte\WebSeiten\LocalWeb\contenido-4.5.3\.htaccess
# URL http://localhost/contenido-4.5.3/.htaccess
#
RewriteEngine On
RewriteBase /contenido-4.5.3/
RewriteRule ^cms/index.html$ cms/front_content.php [L]
RewriteRule ^cms/(.*)/index.html$ cms/front_content.php?path=$1 [L]
Code: Alles auswählen
http://localhost/contenido-4.5.3/cms/Hauptnavigation/Punkt-1/Punkt-1.2/index.html
Code: Alles auswählen
http://localhost/contenido-4.5.3/cms/front_content.php?path=Hauptnavigation/Punkt-1/Punkt-1.2
Nur, wie spreche ich aber Artikel einer Kategorie an, die keine Startartikel sind wenn die Artikelangabe nicht interpretiert wird? Einfach mit ?idart anzuhängen würde genau das zerstören was modrewrite reparieren soll - Googlefreundlichkeit. Deshalb meine Frage ob ich irgendwas übersehen habe.
Gruss, Edward
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
Naja ganz einfach: wir haben bei vielen Installationen noch eine Regel in der Form
index-<kategorie>-<artikel>.html
Zusammen mit dem Pathresolver erhält man dann z.b. einen link in der Art http://www.dorma.com/en/newspress/newsp ... -2157.html
index-<kategorie>-<artikel>.html
Zusammen mit dem Pathresolver erhält man dann z.b. einen link in der Art http://www.dorma.com/en/newspress/newsp ... -2157.html
@ronaldo
Vielen Dank für deine Constribution, super Arbeit.
Habe jedoch ein kleines Problem. Aus meinen dynamischen PHP Dateien, werden keine .html Datei erstellt. Ich teste das ganze mit xampp, lokal. modrewrite wurde unter xampp aktiviert.
In der config.php von Contenido, wurde auch die Anweisung auf 1 gestellt. Dein Script für die Datenbank wurde auch ausgeführt.
Gibt es da jetzt einen Trick?
Ach ja und der tinyMCE läuft mit deiner Constribution leider auch nicht.
Vielen Dank für deine Constribution, super Arbeit.
Habe jedoch ein kleines Problem. Aus meinen dynamischen PHP Dateien, werden keine .html Datei erstellt. Ich teste das ganze mit xampp, lokal. modrewrite wurde unter xampp aktiviert.
In der config.php von Contenido, wurde auch die Anweisung auf 1 gestellt. Dein Script für die Datenbank wurde auch ausgeführt.
Gibt es da jetzt einen Trick?
Ach ja und der tinyMCE läuft mit deiner Constribution leider auch nicht.
@ronaldo Vielen Dank auch Dir. es läuft lokal auf meinem System ohne Problemme, bis auf eins:
Leider habe ich immer noch ein Problemchen, das auch im Originalbundle vorhanden ist, Frage daher auch an Stese wie kann es dazu kommen dass wenn ich zB auf den ersten Newseintrag klicke dieses Link bekomme:
Dieses öffnet die Startseite. Wenn ich aber manuell 'News/' einschiebe wird der richtige Artikel angezeigt:
Die Newskategorie ist abgespeichert, auch der MRUpdater meint "0 Kategorien ohne websafename".
@timo Ja das könnte hinhauen, danke
Edanis
Leider habe ich immer noch ein Problemchen, das auch im Originalbundle vorhanden ist, Frage daher auch an Stese wie kann es dazu kommen dass wenn ich zB auf den ersten Newseintrag klicke dieses Link bekomme:
Code: Alles auswählen
http://localhost/contenido-4.4.5/cms/CMS-Contenido.html?m=&s=
Code: Alles auswählen
http://localhost/contenido-4.4.5/cms/News/CMS-Contenido.html?m=&s=
@timo Ja das könnte hinhauen, danke
Edanis
Habs herausgefunden
war auch nicht schwer. und ist auch kein Bug sondern Feature
Die Newskategorie ist nämmlich eine Startkategorie (eine mit Level 0). Davon gibt es drei Hauptnavigation, News und Hilfsnavigation Und die Ausgabe von Startkategorien wurde per Default ausgeschaltet.
Die Moderewrite-URL bildet die Funktion build_new_url der Klasse Moderewrite (class.modrewrite.php, Zeile 407) Und ob die nun Startkategorien hinzunimmt oder nicht entscheidet die Einstelung die man per
umschaltet. Die Stelle findt sich auf der Zeile 115 von config.php. Bei der Angabe 1 Beginnt der Pfad für die Newslinks mit 'News/' und findet den richtigen Artikel. Nebenwirkungen habe ich bisher keine beobachten können
Gruss, Edward
war auch nicht schwer. und ist auch kein Bug sondern Feature
Die Newskategorie ist nämmlich eine Startkategorie (eine mit Level 0). Davon gibt es drei Hauptnavigation, News und Hilfsnavigation Und die Ausgabe von Startkategorien wurde per Default ausgeschaltet.
Die Moderewrite-URL bildet die Funktion build_new_url der Klasse Moderewrite (class.modrewrite.php, Zeile 407) Und ob die nun Startkategorien hinzunimmt oder nicht entscheidet die Einstelung die man per
Code: Alles auswählen
/* Start TreeLocation vrom Root Tree (set to 1) or get location from first category (set to 0) */
$cfg['mod_rewrite']['startfromroot'] = 0;
Gruss, Edward
äh ja genau - problem gelöst
das feature war notwendig, weil ich mehrere projekte hatte, die eine andere Baumstruktur aufwiesen.
aber ich hab noch einen anderen bug gefunden, welcher verursacht, dass wenn 2 verschachtelte kategorien gleich heissen eine 50/50 chance besteht dass er die falsche kategorie auswählt.
bugfix:
öffnen der includes/functions.modrewrite.php
suche funktion mr_get_idcat
suche folgende zeile:
und durch diese query ersetzen:
das feature war notwendig, weil ich mehrere projekte hatte, die eine andere Baumstruktur aufwiesen.
aber ich hab noch einen anderen bug gefunden, welcher verursacht, dass wenn 2 verschachtelte kategorien gleich heissen eine 50/50 chance besteht dass er die falsche kategorie auswählt.
bugfix:
öffnen der includes/functions.modrewrite.php
suche funktion mr_get_idcat
suche folgende zeile:
Code: Alles auswählen
// get the parent id from first websafe name
$sql = "SELECT c.parentid
FROM " . $cfg["tab"]["cat"] . " c
LEFT JOIN " . $cfg["tab"]["cat_lang"] . " cl
ON c.idcat = cl.idcat
WHERE cl.websafename = '" . $arr_catnames[0] . "'";
Code: Alles auswählen
// get the parent id from first websafe name
$sql = "SELECT c.parentid
FROM " . $cfg["tab"]["cat"] . " c
LEFT JOIN " . $cfg["tab"]["cat_lang"] . " cl
ON c.idcat = cl.idcat,
" . $cfg["tab"]["cat_tree"] . " ct
WHERE cl.websafename = '" . $arr_catnames[0] . "'
AND ct.idcat = c.idcat
ORDER BY ct.level ASC LIMIT 1";
Zuletzt geändert von stese am Fr 15. Jul 2005, 10:23, insgesamt 1-mal geändert.
... Mini-Änderungen -> Nochmal zum Download ...
Package contains Contenido 4.4.5 ( http://www.contenido.org/ )
+ copy article ( http://contenido.org/forum/viewtopic.php?t=7150 )
+ advanced mod rewrite ( http://contenido.org/forum/viewtopic.php?p=51253 )
+ advanced mod rewrite database updater ( http://contenido.org/forum/viewtopic.ph ... t=90#50770 )
+ some more file upload fields
Changes
- Steses Änderung
- Readme.txt (SQL-Statement für copy article)
download: contenido4.4.5_copy_art--mod-rewr_pl1.zip
Package contains Contenido 4.4.5 ( http://www.contenido.org/ )
+ copy article ( http://contenido.org/forum/viewtopic.php?t=7150 )
+ advanced mod rewrite ( http://contenido.org/forum/viewtopic.php?p=51253 )
+ advanced mod rewrite database updater ( http://contenido.org/forum/viewtopic.ph ... t=90#50770 )
+ some more file upload fields
Changes
- Steses Änderung
- Readme.txt (SQL-Statement für copy article)
download: contenido4.4.5_copy_art--mod-rewr_pl1.zip