Plugin Advanced Mod Rewrite für Contenido 4.8.x

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Fr 6. Jun 2008, 10:13

[falsch platzierten Beitrag hierher kopiert]
projumper hat geschrieben:hi @ all,

ich hoffe ich bin richtig hier... wenn nicht bitte bescheid geben.... seid auch nicht so hart zu mir bion contenido neuling....


ich habe ein problem mit mod rewrite, wahrscheinlich mit den einstellungen.

ich habe dieses tool installiert:plugin_advanced_mod_rewrite_0.3.0.zip läuft an sich aber folgendes problem:
aus

Code: Alles auswählen

http://abc-partner.de/cms/front_content.php?idart=1&idcat=1
macht er
aber warum ersetzt er nicht das "front_content.php?idart=1&idcat=1"

an sich musste er den artikel namen hin schreiben, das bekomme ich hin aber wieder mal nicht ganz richtig :

Code: Alles auswählen

http://abc-partner.de/contenido+demo-deutsch.das-ist-mod-rewrite.gmbh?start=&view=upload%2Fbildergalerie%2FP1020042.jpg
warum hängt er noch

Code: Alles auswählen

?start=&view=upload%2Fbildergalerie%2FP1020042.jpg
mit dran ???

wenn jemand eine antwort weiss oder mir helfen kann bin ich sehr dankbar !!!!!
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

jdstrike
Beiträge: 52
Registriert: Di 18. Dez 2007, 14:55
Kontaktdaten:

Beitrag von jdstrike » Fr 6. Jun 2008, 10:18

Hallo xmurrix ich noch mal :oops:

soweit funktioniert alles, ich habe aber noch festgestellt das das Plugin "Umfrage" wenn ich direkt auf den ergebnis button klicke die Mandatenfehlerseite auswirft.

Code: Alles auswählen

global $idcatart, $client;
    $formaction = $sess->url("front_content.php?idcatart=".$properties->getValue("clientsetting", $client, "Umfrageergebnisse", "idcatart"));
		
Umfrageergebnisse idcatart wurde in den Mandateneinstellungen festgelegt.

Code: Alles auswählen

	<input type="button" name="option" class="button" value="<?php echo $_button_results; ?>" onclick="document.location.href='<?php echo $formaction."&id=".$poll["id"]; ?>';" />
Bei ausgeschaltetem ModRewrite funktioniert das Modul.

Hast du da vll ein Idee?

LG
jdstrike

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

Beitrag von xmurrix » Fr 6. Jun 2008, 11:20

Hallo,
projumper hat geschrieben:...

Code: Alles auswählen

http://abc-partner.de/cms/front_content.php?idart=1&idcat=1
macht er

Code: Alles auswählen

http://abc-partner.de/front_content.php?idart=1&idcat=1 
aber warum ersetzt er nicht das "front_content.php?idart=1&idcat=1"
Das könnte an den Einstellungen liegen, wie sehen die bei dir eigentlich aus, eventuell Mod Rwrite deaktiviert?
an sich musste er den artikel namen hin schreiben, das bekomme ich hin aber wieder mal nicht ganz richtig :

Code: Alles auswählen

http://abc-partner.de/contenido+demo-deutsch.das-ist-mod-rewrite.gmbh?start=&view=upload%2Fbildergalerie%2FP1020042.jpg
warum hängt er noch

Code: Alles auswählen

?start=&view=upload%2Fbildergalerie%2FP1020042.jpg
mit dran ???
Das Plugin umschreibt nur URLs, die zu Artikel und oder Kategorien einer Seite verweisen. Das betrifft die Parameter (idart, idcat, idlang, idcatlang, idartlang, usw.). Zusätzliche in Modulen verwendete Parameter werden in nicht umschrieben und werden daher an die URL einfach angehängt.

Grüße
xmurrix
Zuletzt geändert von xmurrix am Fr 6. Jun 2008, 12:29, insgesamt 1-mal geändert.

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

Beitrag von xmurrix » Fr 6. Jun 2008, 11:24

Hallo,
jdstrike hat geschrieben:Hallo xmurrix ich noch mal :oops:

Code: Alles auswählen

global $idcatart, $client;
    $formaction = $sess->url("front_content.php?idcatart=".$properties->getValue("clientsetting", $client, "Umfrageergebnisse", "idcatart"));
...
Hast du da vll ein Idee?
vielleicht fehlt da noch global $sess, die $idcatart und $client holst du wohl auch per global in den Namensraum der Funktion oder?

Gruß
xmurrix

jdstrike
Beiträge: 52
Registriert: Di 18. Dez 2007, 14:55
Kontaktdaten:

Beitrag von jdstrike » Fr 6. Jun 2008, 11:57

im Quelltext schreibt er mir nicht den komplette link hin. Es fehlt der Pfad zur .htaccess
weisst du wieso?

jdstrike

jdstrike
Beiträge: 52
Registriert: Di 18. Dez 2007, 14:55
Kontaktdaten:

Beitrag von jdstrike » Fr 6. Jun 2008, 12:07

das mit dem Pfad hat sich erledigt, liegt an der &poll id. die hängt er hinter den link ..../umfrage-ergebnis.html&id1

Kann es sein das der Modrewrite bei parameterübergabe nicht mitspielt?

jdstrike

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

Beitrag von xmurrix » Fr 6. Jun 2008, 12:28

jdstrike hat geschrieben:das mit dem Pfad hat sich erledigt, liegt an der &poll id. die hängt er hinter den link ..../umfrage-ergebnis.html&id1

Kann es sein das der Modrewrite bei parameterübergabe nicht mitspielt?

jdstrike
Das sollte eigentlich kein Problem sein, die Bildergalerie in Contenido arbeitet auch mit zusätzlichen Parametern, da konnte ich bisher keine Probleme feststellen.

Gibt es ein Problem beim Generieren der URL oder bei Anzeige korrekter Inhalte, wenn die URL aufgerufen wurde - welches Umfragemodul verwendest du dafür?

Gruß
xmurix

jdstrike
Beiträge: 52
Registriert: Di 18. Dez 2007, 14:55
Kontaktdaten:

Beitrag von jdstrike » Fr 6. Jun 2008, 13:00

also generieren tut er das hier

Code: Alles auswählen

onclick="document.location.href='/hosting/bwv/cms/umfragen/umfrage-ergebnis.html&id=1';"
es ist das Plugin Umfrage

http://forum.contenido.org/viewtopic.php?t=17457

jdstrike

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

Beitrag von xmurrix » Sa 7. Jun 2008, 20:42

jdstrike hat geschrieben:also generieren tut er das hier

Code: Alles auswählen

onclick="document.location.href='/hosting/bwv/cms/umfragen/umfrage-ergebnis.html&id=1';"
es ist das Plugin Umfrage

http://forum.contenido.org/viewtopic.php?t=17457

jdstrike
Das Verhalten ist leider ein Bug vom Mod Rewrite Plugin. In der Umfrage wird in einer Zeile die URL mit $sess->url erstellt:

Code: Alles auswählen

    $formaction = $sess->url("front_content.php?idcatart=".$properties->getValue("clientsetting", $client, "Umfrageergebnisse", "idcatart"));
Normalerweise würde in $formaction etwas wie front_content.php?idcatart=123 stehen. In der url() Methode wird die URL aber schon vom Mod Rewrite Plugin umschrieben, also steht in $formaction dann sowas wie /categorie/article.html.

In der Umfrage wird später die Id der Umfrage an $formaction angehängt.

Code: Alles auswählen

$formaction."&id=".$poll["id"]
Da die URL schon in der $sess->ur() umschrieben wurde, ist die neue URL dann /categorie/article.html&id=12.

Das werde ich entsprechend anpassen müssen, bis dahin kannst du folgendes als Workaround machen:
Öffne die /conlib/local.php und deaktiviere die Funktion (ab Zeile 282)

Code: Alles auswählen

  function url($url){
    // let parent do the the job
    $url = parent::url($url);
    
    // call CEC Hook
    return CEC_Hook::execute('Contenido.Frontend.CreateURL', $url);
      
  }
durch kommentieren der ganzen Funktion

Code: Alles auswählen

/*
  function url($url){
    // let parent do the the job
    $url = parent::url($url);
    
    // call CEC Hook
    return CEC_Hook::execute('Contenido.Frontend.CreateURL', $url);
      
  }
*/
Dann wird die URL nicht bei Verwendung von $sess->url() umschrieben. Dafür wird das Umschreiben beim Generieren des Codes nicht funktionieren, aber diese Option verwendest du wahrscheinlich nicht.

Gruß
xmurrix

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

Fehler in Advanced Mod Rewrite

Beitrag von xmurrix » Sa 7. Jun 2008, 21:58

Hallo zusammen,

es sind noch zwei Bugs im Plugin aufgetaucht, auf die ich von jdstrike und baumpaul aufmerksam gemacht wurde - vielen Dank euch beiden für die Hinweise.

1. $session->url() in Modulen und Plugins:
Wird eine URL über $sess->url() erstellt, greift das Mod Rewrite Plugin ein und umschreibt die URL direkt. Hängt man der URL danach weitere Parameter an, kann es dann zu Problemen führen.
Beispiel

Code: Alles auswählen

// ohne mod rewrite
$url  = $sess->url('front_content.php?idart=123&idcat=45');
$url .= '&id=4';
// ergebnis: front_content.php?idart=123&idcat=45&id=4
echo $url;

// mit mod rewrite
$url  = $sess->url('front_content.php?idart=123&idcat=45');
$url .= '&id=4';
// ergebnis:    /category/article.html&id=4
// sollte sein: /category/article.html?id=4
echo $url;
Eine schnelle Lösung ist das Deaktivieren der Funktion, beschrieben in:
http://forum.contenido.org/viewtopic.ph ... =60#118752


2. Urlname der Artikel wird nicht gesetzt:
Um dies zu korrigieren ist in der /contenido/plugins/mod_rewrite/includes/functions.mod_rewrite.php die Funktion mr_conEditArt ab Zeile 274 anzupassen.
Von

Code: Alles auswählen

function mr_conEditArt($idart){
	global $urlname, $title, $idartlang;

	if (strlen(trim($urlname)) == 0) {
		$urlname = $title;
	}

	$arr_art = ModRewrite::get_id_from_idartlang($idartlang);
	if (count($arr_art) == 2) {
		ModRewrite::set_article($urlname, $arr_art['idart'], $arr_art['idlang'], $idcat);
	}
}
in

Code: Alles auswählen

function mr_conEditArt($idart){
	global $urlname, $title, $idartlang, $idcat;

	if (strlen(trim($urlname)) == 0) {
		$urlname = $title;
	}

	$arr_art = ModRewrite::get_id_from_idartlang($idartlang);
	if (isset($arr_art['idart']) && isset($arr_art['idlang'])) {
		ModRewrite::set_article($urlname, $arr_art['idart'], $arr_art['idlang'], $idcat);
	}
}

Die Bugfixes kommen in die nächste Version rein, bis dahin bitte ich euch um Gedult.

Grüße
xmurrix

jdstrike
Beiträge: 52
Registriert: Di 18. Dez 2007, 14:55
Kontaktdaten:

Beitrag von jdstrike » Mo 9. Jun 2008, 13:14

servus xmurrix,

komischer weise verhaut mir das workaround mein komplettes layout

LG
jdstrike

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

Beitrag von xmurrix » Mo 9. Jun 2008, 17:21

jdstrike hat geschrieben:servus xmurrix,

komischer weise verhaut mir das workaround mein komplettes layout

LG
jdstrike
Ich habe das Umschreiben testsweise bei mir gemacht, das Layout wurde dabei nicht zerstört.

Mit folgendem Inputfeld als Beispiel:

Code: Alles auswählen

<input type="button" name="option" class="button" value="foo" onclick="document.location.href='front_content.php?idcatart=123&id=1';" />
Kannst du mir den HTML-Code des "zerstörten" Layouts mal schicken, vielleicht lässt sich daraus ein Rückschluss ziehen.

Gruß
xmurrix

Steffen44
Beiträge: 134
Registriert: So 12. Dez 2004, 12:18
Kontaktdaten:

Beitrag von Steffen44 » Di 10. Jun 2008, 11:31

Hallo

ich brauche eine Weiterleitung von meinen alten Dateien die noch in den Suchmaschinen gelistet sind auf die neuen. Nun habe ich gesehen das es bei dem Mod Rewrite Plugin eine Routing Definitionen gibt aber damit komme ich nicht klar.

Dort steht geschrieben :

Code: Alles auswählen

# {eingehende_url}>>>{neue_url}
/eingehende_url/name.html>>>/neue_url/neuer_name.html
/cms/>>>/
/aktionen/20_prozent_auf_alles_ausser_tiernahrung.html>>>/front_content.php?idcat=23
ich habe versucht das hier einzugeben aber alles was passiert ist das eine Fehlerseite kommt.

Code: Alles auswählen

/referenzen.htm>>>/referenzen.html
oder das :

Code: Alles auswählen

/http://meine.domain.de/referenzen.htm>>>/referenzen.html

Mein Frage ist wie muß die Weiterleitung genau aussehen das es funktioniert ? Braucht man am Anfang immer den Schrägstrich und muß man die drei Pfeile ">>>" einbauen ?

Bei meinen Webseiten haben sich die Namen minimal geändert und ich habe nun statt der Endung .htm die Endung .html.

Mit einem Redirect in der .htaccess habe ich es auch schon versucht nur da kommt gleich Internal Server Error 500.

Danke und Gruß
Steffen

tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono » Di 10. Jun 2008, 11:52

Steffen44 hat geschrieben: Bei meinen Webseiten haben sich die Namen minimal geändert und ich habe nun statt der Endung .htm die Endung .html.

Mit einem Redirect in der .htaccess habe ich es auch schon versucht nur da kommt gleich Internal Server Error 500.
In diesen Fall ist der Redirect mit .htaccess sicherlich einfacher, weil man da alles was .htm heißt in .html umschreiben kann. Fehler 500 heißt, dass Du einen syntaktischen Fehler in den RewriteRules hast. Nochmal die Dokumentation studieren. Daran denken, dass der Punkt escaped werden muss "\."
Bis dann
Tono

Steffen44
Beiträge: 134
Registriert: So 12. Dez 2004, 12:18
Kontaktdaten:

Beitrag von Steffen44 » Di 10. Jun 2008, 12:07

naja ich habe einen ganz einfachen redirect versucht nur da kam es zum dem Fehler 500. Ich vermute einfach mal das es etwas mit dem ModRewrite zu tun hat das es nicht funktioniert und bin deswegen auf die Routing Definitionen um Mod Rewrite Plugin gestoßen.

Ich hatte ganz oben in die .htaccess eingefügt :

Code: Alles auswählen

Redirect /alte-seite.htm neueseite.html
das funktioniert leider nicht.

Kannst du mir ein etwas detailierteres Beispiel geben wie ich die Routung Funktion in Mod Rewrite Plugin benutzen muß ?

Code: Alles auswählen

/alte-seite.htm>>>/neueseite.html
???

Gruß
Steffen

Gesperrt