Plugin Advanced Mod Rewrite für Contenido 4.8.x

Selbstentwickelte Plugins für Contenido für die Version 4.8

Moderator: Moderatoren

Beitragvon 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

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


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!
Halchteranerin
 
Beiträge: 5200
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)

Beitragvon 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
jdstrike
 
Beiträge: 52
Registriert: Di 18. Dez 2007, 14:55

Beitragvon 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: 1291
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg

Beitragvon 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
xmurrix
 
Beiträge: 1291
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg

Beitragvon 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

Beitragvon 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
jdstrike
 
Beiträge: 52
Registriert: Di 18. Dez 2007, 14:55

Beitragvon 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
xmurrix
 
Beiträge: 1291
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg

Beitragvon 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
jdstrike
 
Beiträge: 52
Registriert: Di 18. Dez 2007, 14:55

Beitragvon 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: 1291
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg

Fehler in Advanced Mod Rewrite

Beitragvon 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:
viewtopic.php?t=21578&start=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
xmurrix
 
Beiträge: 1291
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg

Beitragvon jdstrike » Mo 9. Jun 2008, 13:14

servus xmurrix,

komischer weise verhaut mir das workaround mein komplettes layout

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

Beitragvon 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
xmurrix
 
Beiträge: 1291
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg

Beitragvon 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
Steffen44
 
Beiträge: 134
Registriert: So 12. Dez 2004, 12:18

Beitragvon 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
tono
 
Beiträge: 614
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main

Beitragvon 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
Steffen44
 
Beiträge: 134
Registriert: So 12. Dez 2004, 12:18

VorherigeNächste

Zurück zu Plugins 4.8.x

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast