Plugin Advanced Mod Rewrite für Contenido 4.8.x

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Mi 11. Feb 2009, 16:00

MarcoW hat geschrieben:...also vielleicht hab ich mich etwas unverständlich ausgedrückt.
Mit aktiviertem Plugin bringen mich alle Links von Kategorien die keinen Inhalt haben auf die Startseite. Alle anderen werden schön zum Artikel umgeschrieben.
Ich habe deinen Post nicht richtig gelesen...
Der von dir beschriebene Fall liegt am Verhalten des Plugins. Einfach ausgedrückt, macht das Plugin die DB-Abfrage "Hole mir die Kategorie zur der ID 123, zur der es auch einen Startartikel gibt". Bei Kategorien ohne definiertem Startartikel, gibt es kein Ergebnis, diese Kategorien bekommen dann die URL http://localhost/contenido/.

Deinen Einwand, das dann die URL zur Kategorie dennoch generiert werden sollte, kann ich auch nachvollziehen. Andererseits sollte die Ausgabe solcher Kategorien in der Navigation nicht unterbunden werden?

Ich schau mir die DB-Abfrage mal an, eventuell lässt sich da etwas machen - versprechen kann ich es nicht...

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.

MarcoW
Beiträge: 9
Registriert: Mi 11. Feb 2009, 09:35
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von MarcoW » Mi 11. Feb 2009, 16:14

Super das ist Klasse von dir.
mag sein das es mehr Sinn macht diese Kategorien erstmal generell zu verbieten, nur ich bin noch contenido Anfänger und nutze somit das Navigationsmodul aus dem Demomandanten.
Ûnd momentan bin ich noch nicht so fit als das ich mir da ein bessees Modul schreiben könnte.

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Mi 11. Feb 2009, 22:59

Hallo MarcoW,

habe mir das soeben nochmal angesehen, eine einfache Lösung wäre das Erstellen von Startartikeln in einer Kategorie. Willst du aber nicht, dass der Artikel erscheint, kannst es einfach auf offline schalten.

Es reicht vollkommen aus, dass der Kategorie ein Startartikel zugeordnet ist, egal ob online oder offline - dann werden auch die URLs zur Kategorie richtig generiert.

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.

MarcoW
Beiträge: 9
Registriert: Mi 11. Feb 2009, 09:35
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von MarcoW » Do 12. Feb 2009, 08:19

Ok,

stimmt das funktioniert.
Vielen Dank für deine Mühen.


Gruß

Marco

Planer67
Beiträge: 30
Registriert: Do 29. Jan 2009, 13:07
Wohnort: Konstanz
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von Planer67 » Do 12. Feb 2009, 10:31

Hallo xmurrix,

ich habe das Phänomen, dass zwar umgeleitet wird, allerdings erscheint dann eine weiße Seite mit der umschriebenen URL der Fehlerseite zum Anklicken:

http://www.domain.de/de/fehlerseite/feh ... ml?error=1

Bei Klick auf den Link erscheint dann die korrekte Fehlerseite...

Contenido 4.8.11 und MR 0.5.2

Hast Du hierfür eine Erklärung?
Mit Grüßen vom Bodensee...
_______________________________________

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Do 12. Feb 2009, 11:58

Planer67 hat geschrieben:...ich habe das Phänomen, dass zwar umgeleitet wird, allerdings erscheint dann eine weiße Seite mit der umschriebenen URL der Fehlerseite zum Anklicken:

http://www.domain.de/de/fehlerseite/feh ... ml?error=1

Bei Klick auf den Link erscheint dann die korrekte Fehlerseite...
Danke für den Hinweis, da ist noch was vom Debuggen übrig geblieben und ist im Release gelandet.

Öffne die Datei "contenido/plugins/mod_rewrite/includes/functions.mod_rewrite.php" und ändere in der Funktion mr_header() die Zeile 778 von

Code: Alles auswählen

#    header($header);return;
in

Code: Alles auswählen

header($header);return;
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.

Planer67
Beiträge: 30
Registriert: Do 29. Jan 2009, 13:07
Wohnort: Konstanz
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von Planer67 » Do 12. Feb 2009, 16:40

Hallo xmurrix,

Danke hat geklappt :-)

Nun habe ich noch ein Problem mit der BilderGallery von w3cConzepts. Wenn ich dort im Modul die URL's umschreibe (beim Generieren des Codes der Seite):

Code: Alles auswählen

$params = array('idart'=>123, 'lang'=>2, 'client'=>1);
$newUrl = Contenido_Url::getInstance()->build($params);
in:

Code: Alles auswählen

$params = array('idart'=>"{$GLOBALS['idcat']}", 'pos'=>$pos, 'lang'=>1, 'client'=>1);
$newUrl = Contenido_Url::getInstance()->build($params);
ändere, dann funktioniert das Blättern von der ersten zur zweiten Seite wunderbar, aber ab da zur dritten oder wieder zurück hat er die URL verloren, schaut dann so aus:
http://www.domain.de/cms/index.html

Die ganzen Kategorien dazwischen fehlen und natürlich am Ende das "pos=12" oder so...

Mfg
Mit Grüßen vom Bodensee...
_______________________________________

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Do 12. Feb 2009, 19:02

Planer67 hat geschrieben:...
Nun habe ich noch ein Problem mit der BilderGallery von w3cConzepts. Wenn ich dort im Modul die URL's umschreibe (beim Generieren des Codes der Seite):

Code: Alles auswählen

$params = array('idart'=>123, 'lang'=>2, 'client'=>1);
$newUrl = Contenido_Url::getInstance()->build($params);
in:

Code: Alles auswählen

$params = array('idart'=>"{$GLOBALS['idcat']}", 'pos'=>$pos, 'lang'=>1, 'client'=>1);
$newUrl = Contenido_Url::getInstance()->build($params);
ändere, dann funktioniert das Blättern von der ersten zur zweiten Seite wunderbar, aber ab da zur dritten oder wieder zurück hat er die URL verloren, schaut dann so aus:
http://www.domain.de/cms/index.html...
Sollte es nicht $GLOBALS['idart'] anstatt $GLOBALS['idcat'] sein? Kannst aber auch idcat und idart übergeben, also

Code: Alles auswählen

$params = array('idcat'=>$GLOBALS['idcat'], 'idart'=>$GLOBALS['idart'], 'pos'=>$pos, 'lang'=>1, 'client'=>1);
$newUrl = Contenido_Url::getInstance()->build($params);
Du weißt schon, dass die Variante "beim Generieren des Codes der Seite" nicht sehr performant ist, weil zur jeder URL eine Query an die DB abgesetzt wird?

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.

Planer67
Beiträge: 30
Registriert: Do 29. Jan 2009, 13:07
Wohnort: Konstanz
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von Planer67 » Fr 13. Feb 2009, 09:44

Guten Morgen xmurrix,

ich habe es generell so umgesetzt , dass die idcat übergeben wird und funktioniert wunderbar... Probiere ich später in der Gallery mal mit der anderen Variante aus...

In der Konfiguration des MR-Moduls steht aber, dass bei "Ausgabe des HTML Codes der Seite" es ziemlich unperformant sei. Was ist denn nun schneller?
Mit Grüßen vom Bodensee...
_______________________________________

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Fr 13. Feb 2009, 11:36

Planer67 hat geschrieben:...
In der Konfiguration des MR-Moduls steht aber, dass bei "Ausgabe des HTML Codes der Seite" es ziemlich unperformant sei. Was ist denn nun schneller?...
Danke für den Hinweis, das muss ich noch korrigieren, ist ein Übrigbleibsel aus älteren Zeiten.

Umschreiben bei der Ausgabe des HTML Codes der Seite:
Dabei werden alle vorhandenen URLs gesammelt und auf einmal umschrieben. Hat den Vorteil, dass dies in der Regel mit einer Query an die DB möglich ist. Der Nachteil ist, dass die HTML-Ausgabe gepuffert, verarbeitet und dann ausgegeben wird - das kann eine gefühlte Verzörung verursachen.

Umschreiben beim Generieren des Codes der Seite:
Jedes Vorkommen von Contenido_Url::getInstance()->build(...) in den Modulausgaben setzt eine Query an die DB ab. Wenn auf der Seite 20 Links mit front_content.php... umschrieben werden sollen, sind es dann 20 Queries.

Ich favorisiere die erstere Variante mit weniger Queries an die DB, das ist aber Geschmackssache. Wenn man andere UrlBuilder als den vom Plugin verwenden möchte oder den UrlBuilder wechseln will, ist die zweite Variante die bessere Wahl, weil das Umschreiben bei der Ausgabe des HTML Codes ein Feature des Plugins ist.

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.

winston
Beiträge: 35
Registriert: Di 30. Okt 2007, 12:20
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von winston » Fr 13. Feb 2009, 21:33

hallo!

super modul! gefällt mir sehr sehr sehr gut! riesen dank dafür!

wirklich einfach einzubauen und sehr gute funktionen.

ein kleines problem habe ich noch. die seiten werden auf http://meinedomain.de geleitet.
Hätte sie aber gerne auf http://www.meinedomain.de

habe schon versucht das ganze in den mandanteneinstellungen zu ändern. hat aber nichts gebracht.

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Fr 13. Feb 2009, 23:42

Hallo winston,
winston hat geschrieben:...ein kleines problem habe ich noch. die seiten werden auf http://meinedomain.de geleitet.
Hätte sie aber gerne auf http://www.meinedomain.de...
du kannst das in der .htaccess abfangen, mit folgenden Regeln:

Code: Alles auswählen

RewriteCond %{HTTP_HOST} ^meinedomain.de [NC]
RewriteRule ^(.*)$ http://www.meinedomain.de/$1 [R=301,NC,L]
Dabei werden alle Request ohne vorangestelltem www im HTTP_HOST mit dem Statuscode 301 (moved permanently) weitegeleitet.

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.

Mariposa
Beiträge: 5
Registriert: Di 17. Feb 2009, 12:50
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von Mariposa » Di 17. Feb 2009, 14:06

Hallo,

erstmal ganz dickes Lob für das super AMR-Plugin!

Nach der Installation von Contenido 4.8.11 (mit Beipielmandant) und AMR 0.5.3 sehen die URL´s wie folgt aus:
http:// ... /deutsch/was-ist-contenido/index.html?a=2&level=1
http:// ... /deutsch/erste-schritte/index.html?a=3&level=1
etc.
Wie bekomme ich diese URL-Zusätze weg?

Bei der Installation von Contenido 4.8.10 (mit Beipielmandant) und AMR 0.5.2 auf dem selben Server funktioniert alles wunderbar.

Nachdem ich Contenido 4.8.10 intensiv getestet und für meine Zwecke für gut befunden habe, wollte ich in der clean aufgesetzten Version 4.8.11 die produktiven Seiten einrichten.

Danke für jede Hilfestellung.

Walter (Mariposa)

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von xmurrix » Di 17. Feb 2009, 14:49

Hallo Mariposa,
Mariposa hat geschrieben:Hallo,

erstmal ganz dickes Lob für das super AMR-Plugin!

Nach der Installation von Contenido 4.8.11 (mit Beipielmandant) und AMR 0.5.3 sehen die URL´s wie folgt aus:
http:// ... /deutsch/was-ist-contenido/index.html?a=2&level=1
http:// ... /deutsch/erste-schritte/index.html?a=3&level=1
etc.
Wie bekomme ich diese URL-Zusätze weg?
...
seit der Version 4.8.11 gibt es die cms/includes/Util/Modules/Contenido_NavMain_Util.class.php, die sich um die Generierung der Navigationsselemente kümmert. Dort werden auch die zusätzlichen Parameter "a" und "level" gesetzt.

Du müsstest den Codeblock

Code: Alles auswählen

	// this is just for sample client - modify to your needs!
	if ($aCfg['url_builder']['name'] == 'front_content') {
		$aParams = array('lang' => $iLang, 'idcat' => $oCategory->getIdCat());
	} else {
		$aParams = array('a' => $oCategory->getIdCat(), 
						 'idcat' => $oCategory->getIdCat(), // needed to build category path
						 'lang' => $iLang, // needed to build category path
						 'level' => 1); // needed to build category path
	}
anpassen in

Code: Alles auswählen

	// this is just for sample client - modify to your needs!
	if ($aCfg['url_builder']['name'] == 'front_content') {
		$aParams = array('lang' => $iLang, 'idcat' => $oCategory->getIdCat());
	} elseif ($aCfg['url_builder']['name'] == 'MR') {
		$aParams = array('lang' => $iLang, 'idcat' => $oCategory->getIdCat());
	} else {
		$aParams = array('a' => $oCategory->getIdCat(), 
						 'idcat' => $oCategory->getIdCat(), // needed to build category path
						 'lang' => $iLang, // needed to build category path
						 'level' => 1); // needed to build category path
	}
Leider ist die Lösung suboptimal, beim nächsten Contenido-Update wäre deine Änderung weg, eine andere Lösung ohne Anpassung der Sourcen habe ich nicht parat.

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.

Mariposa
Beiträge: 5
Registriert: Di 17. Feb 2009, 12:50
Kontaktdaten:

Re: Plugin Advanced Mod Rewrite für Contenido 4.8.x

Beitrag von Mariposa » Di 17. Feb 2009, 15:25

Dank an xmurrix für die schnelle Hilfe!

Jetzt sind die URL´s wieder sauber.

Würde es nicht Sinn machen, diesen Code-Snipsel fest in die Source aufzunehmen?

Gruß
Mariposa

Gesperrt