Plugin Advanced Mod Rewrite für Contenido 4.8.x
-
- Beiträge: 77
- Registriert: Sa 13. Feb 2010, 16:07
- Kontaktdaten:
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Hallo da draußen....
auch ich habe das AMR Plugin öfters im Einsatz und möchte zunächst mal Danke sagen, für alle die es pflegen und weiterentwickeln.
Ich möchte, egal in wieviel Ebenen meine Seite geschachtelt ist, ein extrem flache Linkstruktur erreichen. Im Grunde soll die ausgeworfene URL immer so aussehen:
http://www.domain.de/mein-artikelname-alias.html
Der Artikelname kommt dann aus den Eigenschaften des Artikels (Alias).
Also bei den Einstellungen im Plugin habe ich bei "Artikelname an URLs anhängen" den Haken gesetzt. Ich würde sowas brauchen wie:
"Artikelname an URLs anhängen und Kategorienamen ignorieren"
Wie krieg ich das hin? Danke für Eure Tipps
Frank
auch ich habe das AMR Plugin öfters im Einsatz und möchte zunächst mal Danke sagen, für alle die es pflegen und weiterentwickeln.
Ich möchte, egal in wieviel Ebenen meine Seite geschachtelt ist, ein extrem flache Linkstruktur erreichen. Im Grunde soll die ausgeworfene URL immer so aussehen:
http://www.domain.de/mein-artikelname-alias.html
Der Artikelname kommt dann aus den Eigenschaften des Artikels (Alias).
Also bei den Einstellungen im Plugin habe ich bei "Artikelname an URLs anhängen" den Haken gesetzt. Ich würde sowas brauchen wie:
"Artikelname an URLs anhängen und Kategorienamen ignorieren"
Wie krieg ich das hin? Danke für Eure Tipps
Frank
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Hallo Frank,
das AMR-Plugin ist so konzipiert, dass es die Kategoriestruktur in den generierten URLs abbildet und ankommende Clean-URLs entsprechend wieder aufzulösen versucht.
Willst du das ohne Kategoriepfade generieren, so musst du in der Datei "contenido/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php" die Funktion _buildUrl() anpassen. Diese Funktion generiert die Clean-URLs für das AMR-Plugin.
Dann musst du dafür sorgen, dass ankommende Clean-URLs wieder korrekt aufgelöst werden. Das macht in der Datei "contenido/plugins/mod_rewrite/classes/class.modrewritecontroller.php" die Funktion _setPathresolverSetting(). Hier sollte die Kategorie nicht ermittelt werden. Eventuell ist es auch nötig, die Funktion _setIdart() anzupassen.
Bedenke aber, dass durch den Wegfall der Kategoriepfade in der URL das Risiko redundanter URLs aufgrund gleicher Artikelaliase erhöht wird. Vielleicht wäre es dann besser, die Id der Artikel in die generierte URL einzubauen, z. B. /impressum.2.html, damit hast du immer die Id in der URL und kannst einfach die Artikelid aus ankommenden Clean-Urls exrahieren...
Gruß
xmurrix
das AMR-Plugin ist so konzipiert, dass es die Kategoriestruktur in den generierten URLs abbildet und ankommende Clean-URLs entsprechend wieder aufzulösen versucht.
Willst du das ohne Kategoriepfade generieren, so musst du in der Datei "contenido/classes/UrlBuilder/Contenido_UrlBuilder_MR.class.php" die Funktion _buildUrl() anpassen. Diese Funktion generiert die Clean-URLs für das AMR-Plugin.
Dann musst du dafür sorgen, dass ankommende Clean-URLs wieder korrekt aufgelöst werden. Das macht in der Datei "contenido/plugins/mod_rewrite/classes/class.modrewritecontroller.php" die Funktion _setPathresolverSetting(). Hier sollte die Kategorie nicht ermittelt werden. Eventuell ist es auch nötig, die Funktion _setIdart() anzupassen.
Bedenke aber, dass durch den Wegfall der Kategoriepfade in der URL das Risiko redundanter URLs aufgrund gleicher Artikelaliase erhöht wird. Vielleicht wäre es dann besser, die Id der Artikel in die generierte URL einzubauen, z. B. /impressum.2.html, damit hast du immer die Id in der URL und kannst einfach die Artikelid aus ankommenden Clean-Urls exrahieren...
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Ich habe gerade genau das gegenteilige Problem, nämlich dass AMR bei einem ganz bestimmten Menüpunkt keinen Menüpfad erzeugt, sondern nur eine domain.de/index.html daraus macht.
Es betrifft aber nur genau diesen Menüpunkt, egal in welcher Reihenfolge ich ihn im Menü setze.
Das Menüprogramm gibt mit die korrekte idcat aus und scheinbar ist alles gleich wie in den anderen Menüpunkten (teils auch mit weiteren Untermenüs), nur wird kein Pfad aufgebaut.
Ein anderes Menümodul bildet diesen Menüpunkt korrekt ab, aber das kann ich nicht damit ersetzen.
Wo könnte denn der Fehler sein?
Es betrifft aber nur genau diesen Menüpunkt, egal in welcher Reihenfolge ich ihn im Menü setze.
Das Menüprogramm gibt mit die korrekte idcat aus und scheinbar ist alles gleich wie in den anderen Menüpunkten (teils auch mit weiteren Untermenüs), nur wird kein Pfad aufgebaut.
Ein anderes Menümodul bildet diesen Menüpunkt korrekt ab, aber das kann ich nicht damit ersetzen.
Wo könnte denn der Fehler sein?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Hallo Frank,
wenn AMR ein Link zur Startseite generiert, liegt das meistens daran, dass in der Kategorie kein Startartikel online ist.
Gruß
René
wenn AMR ein Link zur Startseite generiert, liegt das meistens daran, dass in der Kategorie kein Startartikel online ist.
Gruß
René
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Hallo René,
mag sonst so sein, aber in der Kategorie ist ja ein Startartikel.
Und wie gesagt, das andere Menümodul (Sitemap-Modul vermute ich), generiert ja den richtigen Link.
Man könnte dann denken, dass es klar am Menümodul liegen muss, aber dieses produziert auch die richtigen Links, bis auf genau diese eine Kategorie.
Viele Grüße,
Frank
mag sonst so sein, aber in der Kategorie ist ja ein Startartikel.
Und wie gesagt, das andere Menümodul (Sitemap-Modul vermute ich), generiert ja den richtigen Link.
Man könnte dann denken, dass es klar am Menümodul liegen muss, aber dieses produziert auch die richtigen Links, bis auf genau diese eine Kategorie.
Viele Grüße,
Frank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Und hast du dir den Link schonmal ohne AMR angesehen?
Gruß
René
Gruß
René
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Folgende Ursachen kann es noch geben:
* Die Kategorie ist eine Hauptkategorie, Hauptkategorien werden in der Regel ausgelassen.
* Zur der Kategorie fehlen Angaben wie "urlname" und/oder "urlpath" (siehe Tabelle con_cat_lang)
* Die Kategorie ist offline/geschützt
* Der Startartikel ist offline
* Irgendein Modul leert kurz zuvor den Ausgabebuffer, so dass das AMR- Plugin keine HTML Ausgabe zum umwandeln der URLs bekommt
Wenn nichts davon zutrifft, würde ich vorschlagen, den Debugger des Plugins zu aktivieren und die Generierung dieser einen URL zu prüfen...
Der Debugger lässt sich in "contenido/plugins/mod_rewrite/includes/config.plugin.php" an folgender Stelle aktivieren:
Dann wird im Frontend oben links ein Debug-Layer ausgebenen, das kann man sich dann genauer ansehen...
Gruß
xmurrrix
* Die Kategorie ist eine Hauptkategorie, Hauptkategorien werden in der Regel ausgelassen.
* Zur der Kategorie fehlen Angaben wie "urlname" und/oder "urlpath" (siehe Tabelle con_cat_lang)
* Die Kategorie ist offline/geschützt
* Der Startartikel ist offline
* Irgendein Modul leert kurz zuvor den Ausgabebuffer, so dass das AMR- Plugin keine HTML Ausgabe zum umwandeln der URLs bekommt
Wenn nichts davon zutrifft, würde ich vorschlagen, den Debugger des Plugins zu aktivieren und die Generierung dieser einen URL zu prüfen...
Der Debugger lässt sich in "contenido/plugins/mod_rewrite/includes/config.plugin.php" an folgender Stelle aktivieren:
Code: Alles auswählen
// set debug configuration
$options = array(
'enable' => true, // <<-- hier auf true setzen
'ressource_urls' => array('/contenido/logs/errorlog.txt'),
'dump_super_globals' => array('$_GET', '$_POST', '$_COOKIE', '$_SESSION'),
'ignore_empty_superglobals' => true
);
Gruß
xmurrrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Ja, funktioniert dann einwandfrei.Spider IT hat geschrieben:Und hast du dir den Link schonmal ohne AMR angesehen?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Nein, es ist wie die anderen auch in der gleichen Ebene.xmurrix hat geschrieben:Folgende Ursachen kann es noch geben:
* Die Kategorie ist eine Hauptkategorie, Hauptkategorien werden in der Regel ausgelassen.
Hab nachgeschaut, die sind da. Und das müssen sie ja auch, weil es mit dem anderen Menümodul einwandfrei funktioniert.* Zur der Kategorie fehlen Angaben wie "urlname" und/oder "urlpath" (siehe Tabelle con_cat_lang)
Nein, es wird ja angezeigt.* Die Kategorie ist offline/geschützt
Auch nicht, funktioniert ja, wenn man es über front_copntent.php aufruft oder im anderen Menü.* Der Startartikel ist offline
Es ist das Modul "Hauptnavigation" von Jan Lengowski und Andreas Lindner. Da wird ja die HTML-Ausgabe gesammelt und erst danach der Puffer beendet (ob_end_clean), folglich müssten entweder gar nichts funktionieren oder alles.* Irgendein Modul leert kurz zuvor den Ausgabebuffer, so dass das AMR- Plugin keine HTML Ausgabe zum umwandeln der URLs bekommt
Ich hatte schon den Verdacht, dass die nachfolgenden inaktiven Kategorien eine Rolle spielen könnten. Ich weiß nicht ob die gelöscht werden könnten, aber sowohl die Kategorien als auch die Artikel sind offline geschaltet. Ich hatte daher mal genau die betroffene Menükategorie verschoben, damit sie nicht mehr die letzte angezeigte Kategorie im Menü ist, aber auch da bleibt es hartnäckig dabei, dass genau diese Kategorie mit diesem Menümodul keinen Pfad bekommt.
In der Datenbank ist der Pfad aber vorhanden und hat keine Auffälligkeiten.
Hab ich eben gemacht und "chunksetprettyurlparts() ist ein leeres Array.Wenn nichts davon zutrifft, würde ich vorschlagen, den Debugger des Plugins zu aktivieren und die Generierung dieser einen URL zu prüfen...
In der Tabelle sind alle Daten vorhanden, diese Abfrage hier findet aber scheints nichts:
Code: Alles auswählen
ModRewriteUrlStack->_chunkSetPrettyUrlParts() $sql = SELECT
al.idartlang, al.idart, al.idlang as lang, al.urlname, cl.idcatlang, cl.idcat,
cl.urlpath, ca.idcatart
FROM
con_art_lang AS al, con_cat_lang AS cl, con_cat_art AS ca
WHERE
al.idart = ca.idart AND
ca.idcat = cl.idcat AND
al.idlang = cl.idlang AND
( (cl.idcat = 1 AND cl.idlang = 1 AND cl.startidartlang = al.idartlang) OR
(cl.idcat = 132 AND cl.idlang = 1 AND cl.startidartlang = al.idartlang) )
Code: Alles auswählen
Array (
[in] => Array (
[idcat] => 132
[lang] => 1
)
[out] => /index.html
)
Code: Alles auswählen
Array (
[in] => front_content.php?idcat=132
[out] => /index.html
)
Könnte ja sein, dass der Server zu knapp konfiguriert ist (kann man aber einrichten, wenn man wüsste wo und ob es das ist).
Viele Grüße
Frank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Wenn ich die SQL direkt in der Datenbank ausführe, gibt es auch kein Ergebnis.
Die startidlang ist 0 und die ist bei mehreren Einträgen null (nicht NULL).
Folglich kann der Vergleich cl.startidartlang = al.idartlang nicht stimmen, weil idartlang=882 ist.
Ich kann zwar jetzt provisorisch die startidlang von Hand in die Tabelle con_cat_lang eintragen aber dass dieser Wert dort fehlt, sollte eigentlich nicht der Fall sein.
Könnte es sein, dass dieser Fehler damals auf dem alten Hostingplatz zustande kam, weil dort deren Server das Programm abgebrochen hat, weil die Laufzeit zu kurz eingestellt war?
Früher war der Hoster nämlich 1&1 und da ist ja bekannt, dass oft das Programm mitten drin abgebrochen wird, weil die Ressourcen zu knapp eingestellt sind.
Das war auch der Hauptgrund des Umzuges (abgesehen von der ultra lahmen Antwortzeit) zu einem richtigen Hoster, weil ich im Backend schon gar nicht mehr arbeiten konnte.
Und das ist auch nicht das erste Mal der Grund für einen Umzug von 1&1 zu richtigen Hostern, das ist eher häufig so.
Könnte das sein, dass daher die Daten in den Tabellen falsch sind?
Die startidlang ist 0 und die ist bei mehreren Einträgen null (nicht NULL).
Folglich kann der Vergleich cl.startidartlang = al.idartlang nicht stimmen, weil idartlang=882 ist.
Ich kann zwar jetzt provisorisch die startidlang von Hand in die Tabelle con_cat_lang eintragen aber dass dieser Wert dort fehlt, sollte eigentlich nicht der Fall sein.
Könnte es sein, dass dieser Fehler damals auf dem alten Hostingplatz zustande kam, weil dort deren Server das Programm abgebrochen hat, weil die Laufzeit zu kurz eingestellt war?
Früher war der Hoster nämlich 1&1 und da ist ja bekannt, dass oft das Programm mitten drin abgebrochen wird, weil die Ressourcen zu knapp eingestellt sind.
Das war auch der Hauptgrund des Umzuges (abgesehen von der ultra lahmen Antwortzeit) zu einem richtigen Hoster, weil ich im Backend schon gar nicht mehr arbeiten konnte.
Und das ist auch nicht das erste Mal der Grund für einen Umzug von 1&1 zu richtigen Hostern, das ist eher häufig so.
Könnte das sein, dass daher die Daten in den Tabellen falsch sind?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Hab festgestellt, dass auch bei neuem Artikel erstellen der Eintrag von startidartlang bei 0 bleibt.
Das sollte doch so sicher nicht sein?
Hab hier einen neuen Thread aufgemacht, weil das eigentlich nicht mehr ursächlich das AMR betrifft, oder?
http://forum.contenido.org/viewtopic.php?f=62&t=33741
Das sollte doch so sicher nicht sein?
Hab hier einen neuen Thread aufgemacht, weil das eigentlich nicht mehr ursächlich das AMR betrifft, oder?
http://forum.contenido.org/viewtopic.php?f=62&t=33741
Zuletzt geändert von Faar am Fr 19. Jul 2013, 11:08, insgesamt 1-mal geändert.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Wenn bei dir einige Einträge den Wert startidartlang = 0 haben, dann liegt es wohl daran, dass die CONTENIDO Installation früher lief oder immer noch mit der Einstellung läuft:
CONTENIDO hat diese alte Einstellung lange unterstützt, mittlerweile auch nicht mehr. Auch das AMR-Plugin unterstützt diese Einstellung nicht. Es gibt einen Beitrag, in der beschrieben ist, wie man das umstellen kann:
http://forum.contenido.org/viewtopic.php?f=64&t=32530
Gruß
xmurrix
Code: Alles auswählen
$cfg["is_start_compatible"] = true;
http://forum.contenido.org/viewtopic.php?f=64&t=32530
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Moin,xmurrix hat geschrieben:Wenn bei dir einige Einträge den Wert startidartlang = 0 haben, dann liegt es wohl daran, dass die CONTENIDO Installation früher lief oder immer noch mit der Einstellung läuft:Code: Alles auswählen
$cfg["is_start_compatible"] = true;
die Installation läuft scheints seit 2006, zumindest sind aus der Zeit einige "created" Einträge.
Inzwischen gab es wohl einige Updates und ich habe es letztes Jahr auf 4.8.18 geupdatet.
Gibt es da noch mehr solcher Altlasten, die zu bereinigen wären?
Danke und viele Grüße,
Frank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
Nein, das sollte alles sein.Faar hat geschrieben:...Gibt es da noch mehr solcher Altlasten, die zu bereinigen wären?...
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x
So, jetzt geht die Seite nicht mehr richtig.
Ich habe das mit der is_start Bereinigungs-Function ausprobiert.
Diese hatte nur einige startidartlang von 0 auf die richtige ID umgestellt aber nicht alle.
Dafür aber ging dann die Seite nicht, wegen XML-Fehler.
Zum Glück, dachte ich, habe ich vorher eine Datenbank-Sicherung gemacht.
Aber Glück ist sehr flüchtig, denn in der Hauptkategorie war gar nicht die Startseite, sondern ein Google-XML-Sitemap Modul-Template.
Die Startseite ist wohl eine Unterkategorie.
Trotz wieder einlesens der alten Tabellen bleibt dieser XML-Fehler, wenn man die Domain aufruft.
Die Unterseiten gehen noch.
Eine Umleitung direkt auf die Unterseite, die wohl die Startseite sein soll, funktioniert auch nicht: Fehler 404.
Dafür läuft jetzt etwas anderes, was zuvor gar nicht aufgetaucht ist.
Ich habe das mit der is_start Bereinigungs-Function ausprobiert.
Diese hatte nur einige startidartlang von 0 auf die richtige ID umgestellt aber nicht alle.
Dafür aber ging dann die Seite nicht, wegen XML-Fehler.
Zum Glück, dachte ich, habe ich vorher eine Datenbank-Sicherung gemacht.
Aber Glück ist sehr flüchtig, denn in der Hauptkategorie war gar nicht die Startseite, sondern ein Google-XML-Sitemap Modul-Template.
Die Startseite ist wohl eine Unterkategorie.
Trotz wieder einlesens der alten Tabellen bleibt dieser XML-Fehler, wenn man die Domain aufruft.
Die Unterseiten gehen noch.
Eine Umleitung direkt auf die Unterseite, die wohl die Startseite sein soll, funktioniert auch nicht: Fehler 404.
Dafür läuft jetzt etwas anderes, was zuvor gar nicht aufgetaucht ist.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.