Encyclopedia und mod_rewrite

Begonnen von trulla, 03 Januar 2010, 16:22:43

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

trulla

 :) Hallo, verspätet wünsche ich allen ein frohes Neues Jahr

Ein Großteil meiner Webseite nutzt die Encyclopedia . Leider schaffe ich es nicht, per mod- rewrite die Links so anzupassen, dass der Titel mit im Browser steht.

Beispiel:
http://www.pewro.de/baerenwelt/Encyclopedia-op-content-tid-10.html

sollte heissen
http://www.pewro.de/baerenwelt/Encyclopedia-op-content-tid-Eisbaer-10.html oder ähnlich

Ist hier jemand, der mehr Ahnung hat, als ich?


Webfan

Ungetestet, deshalb Sicherungskopie!!!
Suche in .htaccess
# individuelle Rewrite-Regeln:
Darüber anfügen:
## Neuzugefügte rewrite rules (Encyclopedia)
RewriteRule ^(Encyclopedia)-Term-(.*)-([0-9]+)\.html$ modules.php?name=$1&op=content&tid=$3 [L]


Suche in includes/mx_modrewrite.php
        if ($replaces) {
            if ($customfile) {
                @include($customfile);
            }
            $content = str_replace(array_keys($replaces), array_values($replaces), $content);

Darunter anfügen (wenn es nicht durch die anderen Module schon da steht!):
// Umlaute
$umlaute = array("ä", "ü", "ö", "Ä", "Ü", "Ö", "ß");
$ersetzung = array("ae", "ue", "oe", "Ae", "Ue", "Oe", "ss");
  global $prefix;

Darunter ferner anfügen:
             //Encyclopedia
preg_match_all('#Encyclopedia-op-content-tid-(\d*)#', $content, $enc, PREG_SET_ORDER);
foreach ($enc as $enc1){

$enc2[0] = preg_replace('#Encyclopedia-op-content-tid-#', '', $enc1[0]);
$abfrage = "SELECT tid, title FROM " . $prefix . "_encyclopedia_text WHERE tid = '$enc2[0]'";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_array($ergebnis))
    {

$titel_enc_rewrite = $row["title"];
$titel_enc_rewrite = str_replace($umlaute, $ersetzung, $titel_enc_rewrite);
$titel_enc_rewrite = preg_replace('#\W#', "-", $titel_enc_rewrite);
$titel_enc_rewrite = preg_replace('#---#', "-", $titel_enc_rewrite);
$titel_enc_rewrite = preg_replace('#--#', "-", $titel_enc_rewrite);

$titel_enc_fert = "Encyclopedia-Term-";

$titel_enc_fert.= $titel_enc_rewrite."-";
$titel_enc_fert .= $enc2[0];
$replace = "#".$enc1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_enc_fert, $content);
}

}




trulla

 :thumbup:
Danke, ich bin beeindruckt, wie schnell du das hinbekommen hast. Funktioniert wunderbar..

Break_Dancer

Kurze Nachfrage zu diesem Thema:

Ist es eigentlich vorgesehen, die von den Usern in den vergangenen Monaten erarbeiteten Umschreibungen (auch Weblinks etc....) in den PMX-Stamm zu übernehmen ?

Problem derzeit ist halt, dass nach einem Update jedesmal wieder die zwei Dateien .htaccess und die mx_modrewrite.php anzupassen sind.

Grüße

Markus

Krolok

#4
Sauber, funktioniert bestens, VIELEN VIELEN DANK!!!!   :thumbup:  :thumbup:  :thumbup:

... wäre es noch machbar, dass "Encyclopedia-Term-" auch noch verschwindet und nur noch z.B: "Eisbaer.html" dort steht?


Gruß
[Krolok]
Gruß
Krolok


Die Zähne gewetzt und Ihnen nach...!  (...)

Krolok

hab heute bemerkt, dass die Suche innerhalb der Ency und dem generierten Zusatz "query-SUCHBEGRIFF" die Ganze Funktion zu Nichte macht ... habs erstmal wieder rausgenommen... hat jmd. ne Lösung dafür ?

Danke!
Gruß
Krolok


Die Zähne gewetzt und Ihnen nach...!  (...)