Modul Reviews umbenennen per modrewrite

Begonnen von dragon-tmd, 30 Dezember 2010, 18:03:33

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

dragon-tmd

Vielleicht stehe ich auf dem Schlauch, aber ich möchte, dass bei der mod rewrite Regel nicht mehr Reviews auftaucht, sondern Testbericht. Beispiel:

http://www.meinedomain.de/Reviews-HTC-Desire-Z-show-213.html

in

http://www.meinedomain.de/Testbericht-HTC-Desire-Z-show-213.html

Was muss ich da ändern?

Ansonsten wünsche ich allen einen guten Rutsch ins neue Jahr! :D



Webfan

Ungetestet!!!

.htaccess:

RewriteRule ^(Testbericht)-Produkt-(.*)-([0-9]+)\.html$ modules.php?name=Reviews&rop=showcontent&id=$3 [L]


includes/mx_modrewrite.php:

preg_match_all('#Reviews-rop-showcontent-id-(\d*)#', $content, $Testbericht, PREG_SET_ORDER);
            foreach ($Testbericht as $Testbericht1){

            $Testbericht2[0] = preg_replace('#Reviews-rop-showcontent-id-#', '', $Testbericht1[0]);
            $abfrage = "SELECT title, id FROM " . $prefix . "_Testbericht WHERE id = '$Testbericht2[0]'";
                  $ergebnis = mysql_query($abfrage);
                      while($row = mysql_fetch_array($ergebnis))
                    {

                        $titel_Testbericht_rewrite = $row["title"];
                        $titel_Testbericht_rewrite = str_replace($umlaute, $ersetzung, $titel_Testbericht_rewrite);
                        $titel_Testbericht_rewrite = preg_replace('#\W#', "-", $titel_Testbericht_rewrite);
                        $titel_Testbericht_rewrite = preg_replace('#---#', "-", $titel_Testbericht_rewrite);
                        $titel_Testbericht_rewrite = preg_replace('#--#', "-", $titel_Testbericht_rewrite);
                        $titel_Testbericht_fert = "Testbericht-Produkt-";
                        $titel_Testbericht_fert.= "$titel_Testbericht_rewrite-";
                        $titel_Testbericht_fert.= $Testbericht2[0];
                        $replace = "#".$Testbericht1[0]."(?!\d)#";
                        $content = preg_replace($replace, $titel_Testbericht_fert, $content);
                                    }

                    }


Letzteres VOR :

        }
    }
    return $content;
}


Hab das aus einer veralteten PMX Version etwas angepasst, also ohne Garantie!

- Allen einen guten Rutsch!

dragon-tmd

@webfan

Danke, aber in der neuen Version von Pragmamx scheint modrewrite in classes "aufgegangen zu sein". Finde zumindest keinen Ansatz für deine Lösung.

dragon-tmd

Hallo und ein frohes neues Jahr,

wie kann man in der neuen Version (1.12 Rc2) die Ausgabe des Moduls Reviews so abändern, dass anstatt

http://www.mobile-reviews.de/Reviews-HTC-Desire-Z-show-213.html

dies hier

http://www.mobile-reviews.de/Testbericht-HTC-Desire-Z-show-213.html

ausgegeben wird?


Andi

Moin :)

habe die beiden Threads vereint....

In der tat, sind die Änderungen, die für 0.1.11 gemacht wurden in der 1.12 nicht mehr anwendbar. Die erweiterten mod-Rewrite Regeln sind hier bereits integriert und können viel leichter ergänzt u. angepasst werden...


Für deine Vorhaben sind 2 Schritte nötig:

1:

in der .htaccess folgende Code-Zeilen duplizieren und die 3 zusätzlichen entspr. abändern:
# Reviews
RewriteRule ^Reviews-.*-show-([0-9]+)(-.*)?\.html$ mod.php?name=Reviews&rop=showcontent&id=$1&_MORE_=$2 [L]
RewriteRule ^Reviews-.*-addcomment-([0-9]+)(-.*)?\.html$ mod.php?name=Reviews&rop=postcomment&id=$1&_MORE_=$2 [L]
RewriteRule ^Reviews-.*-send-([0-9]+)(-.*)?\.html$ mod.php?name=Reviews&rop=premail_review&id=$1&_MORE_=$2 [L]

neuer Code:
# Reviews
RewriteRule ^Reviews-.*-show-([0-9]+)(-.*)?\.html$ mod.php?name=Reviews&rop=showcontent&id=$1&_MORE_=$2 [L]
RewriteRule ^Reviews-.*-addcomment-([0-9]+)(-.*)?\.html$ mod.php?name=Reviews&rop=postcomment&id=$1&_MORE_=$2 [L]
RewriteRule ^Reviews-.*-send-([0-9]+)(-.*)?\.html$ mod.php?name=Reviews&rop=premail_review&id=$1&_MORE_=$2 [L]
RewriteRule ^Testbericht-.*-show-([0-9]+)(-.*)?\.html$ mod.php?name=Reviews&rop=showcontent&id=$1&_MORE_=$2 [L]
RewriteRule ^Testbericht-.*-addcomment-([0-9]+)(-.*)?\.html$ mod.php?name=Reviews&rop=postcomment&id=$1&_MORE_=$2 [L]
RewriteRule ^Testbericht-.*-send-([0-9]+)(-.*)?\.html$ mod.php?name=Reviews&rop=premail_review&id=$1&_MORE_=$2 [L]




2:
in der modules/Reviews/core/mod_rewrite.php eine zusätzliche Zeile reinschreiben:
    public function get($name, $parameter)
    {
        global $prefix;

        $replaces = array();



neuer Code:
    public function get($name, $parameter)
    {
        global $prefix;

        $name = 'Testbericht';
        $replaces = array();



Nicht getestet, sollte aber funktionieren.
Die "normalen" Links im Reviews Modul werden dadurch nicht umgeschrieben. Dazu müsste man noch ein wenig basteln, ist aber auch kein Act...
schön´s Grüssle, Andi

dragon-tmd

@Andi

Herzlichen Dank, funktioniert sehr gut.  :thumbup:

Lediglich das Modul Reviews selber wird noch nicht umbenannt. Ruft man es auf, so wird es immer in ***\Reviews.html umbenannt.