Hi, ich suchte vorhin auch nach einer Lösung, und habe mir gerade selber etwas gecodet
(, obwohl ich keine Ahnung davon habe
)
Also:
Als Ausgangsbasis habe ich folgendes
DL-Paket genutzt. Dort wurde auf
Diesen Beitrag verwiesen. Nachdem ich dann die relevanten Codes in die aktuellen Dateien kopiert habe, bin ich angefangen dort selber etwas rum zu fummeln.
Die
mod_rewrite.htaccess wurde ab Zeile 25 durch um folgende Zeilen erweitert:
## Neuzugefügte rewrite rules (Downloads, News, Web_links, Content)
RewriteRule ^(Web_Links)-cid-(.*)-([0-9]+)-min-([0-9]+)-orderby-(.*)\.html$ modules.php?name=$1&cid=$3&min=$4&orderby=$5 [L]
RewriteRule ^(Downloads)-cid-(.*)-([0-9]+)-min-([0-9]+)-orderby-(.*)\.html$ modules.php?name=$1&cid=$3&min=$4&orderby=$5 [L]
RewriteRule ^(Web_Links)-cid-(.*)-([0-9]+)-min-([0-9]+)\.html$ modules.php?name=$1&cid=$3&min=$4 [L]
RewriteRule ^(Downloads)-cid-(.*)-([0-9]+)-min-([0-9]+)\.html$ modules.php?name=$1&cid=$3&min=$4 [L]
#-------------------------Details
RewriteRule ^(Downloads)-lid-(.*)-([0-9]+)\.html$ modules.php?name=$1&op=view&lid=$3 [L]
RewriteRule ^(Web_Links)-lid-(.*)-([0-9]+)\.html$ modules.php?name=$1&op=view&lid=$3 [L]
RewriteRule ^(Content)-pid-(.*)-([0-9]+)\.html$ modules.php?name=$1&pid=$3 [L]
#-------------------------Kartegorie
RewriteRule ^(Downloads)-cid-(.*)-([0-9]+)\.html$ modules.php?name=$1&cid=$3 [L]
RewriteRule ^(Web_Links)-cid-(.*)-([0-9]+)\.html$ modules.php?name=$1&cid=$3 [L]
RewriteRule ^(Content)-cid-(.*)-([0-9]+)\.html$ modules.php?name=$1&cid=$3 [L]
RewriteRule ^(News)-cat-(.*)-([0-9]+)\.html$ modules.php?name=$1&file=categories&catid=$3 [L]
RewriteRule ^(News)-sid-(.*)-([0-9]+)\.html$ modules.php?name=$1&file=article&sid=$3 [L]
Dazu musste dann noch die
includes\mx_modrewrite.php ergänzt werden. Dazu habe ich auch wieder die von m-t erstellten codes aus dem Zip gesucht, und in die Aktuelle Datei zwischen den Zeilen 180 und 181 eingefügt:
// Start mod_rewrite Erweiterung (News, Downloads, Web_Links, Content)
// Umlaute
$umlaute = array("ä", "ü", "ö", "Ä", "Ü", "Ö", "ß", "&");
$ersetzung = array("ae", "ue", "oe", "Ae", "Ue", "Oe", "ss", "und");
//DOWNLOADS DETAILS LID
global $prefix;
preg_match_all('#Downloads-op-view-lid-(\d*)#', $content, $down, PREG_SET_ORDER);
foreach ($down as $down1){
$down2[0] = preg_replace('#Downloads-op-view-lid-#', '', $down1[0]);
$abfrage = "SELECT title, lid FROM " . $prefix . "_downloads_downloads WHERE lid = '$down2[0]'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
{
$titel_down_rewrite = $row["title"];
$titel_down_rewrite = str_replace($umlaute, $ersetzung, $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#\W#', "-", $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#---#', "-", $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#--#', "-", $titel_down_rewrite);
$titel_down_fert = "Downloads-lid-";
$titel_down_fert.= "$titel_down_rewrite-";
$titel_down_fert.= $down2[0];
$replace = "#".$down1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_down_fert, $content);
}
}
//Downloads Categorie (CID)
preg_match_all('#Downloads-cid-(\d*)#', $content, $down, PREG_SET_ORDER);
foreach ($down as $down1){
$down2[0] = preg_replace('#Downloads-cid-#', '', $down1[0]);
$abfrage = "SELECT title, cid FROM " . $prefix . "_downloads_categories WHERE cid = '$down2[0]'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
{
$titel_down_rewrite = $row["title"];
$titel_down_rewrite = str_replace($umlaute, $ersetzung, $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#\W#', "-", $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#---#', "-", $titel_down_rewrite);
$titel_down_rewrite = preg_replace('#--#', "-", $titel_down_rewrite);
$titel_down_fert = "Downloads-cid-";
$titel_down_fert.= "$titel_down_rewrite-";
$titel_down_fert.= $down2[0];
$replace = "#".$down1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_down_fert, $content);
}
}
/**
* ############################################################################################
* ############################################################################################
* ############################################################################################
* Content-Modification Start
* ############################################################################################
* ############################################################################################
* ############################################################################################
*/
//Content Categorie
preg_match_all('#Content-cid-(\d*)#', $content, $pages, PREG_SET_ORDER);
foreach ($pages as $pages1){
$pages2[0] = preg_replace('#Content-cid-#', '', $pages1[0]);
$abfrage = "SELECT title, cid FROM " . $prefix . "_pages_categories WHERE cid = '$pages2[0]'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
{
$titel_pages_rewrite = $row["title"];
$titel_pages_rewrite = str_replace($umlaute, $ersetzung, $titel_pages_rewrite);
$titel_pages_rewrite = preg_replace('#\W#', "-", $titel_pages_rewrite);
$titel_pages_rewrite = preg_replace('#---#', "-", $titel_pages_rewrite);
$titel_pages_rewrite = preg_replace('#--#', "-", $titel_pages_rewrite);
/** normalerweise 1 Bindestrich am Ende */
$titel_pages_fert = "Content-cid---";
$titel_pages_fert.= "$titel_pages_rewrite---";
$titel_pages_fert.= $pages2[0];
$replace = "#".$pages1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_pages_fert, $content);
}
}
//Content Details
preg_match_all('#Content-pid-(\d*)#', $content, $pages, PREG_SET_ORDER);
foreach ($pages as $pages1){
$pages2[0] = preg_replace('#Content-pid-#', '', $pages1[0]);
$abfrage = "SELECT title, pid FROM " . $prefix . "_pages WHERE pid = '$pages2[0]'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
{
$titel_pages_rewrite = $row["title"];
$titel_pages_rewrite = str_replace($umlaute, $ersetzung, $titel_pages_rewrite);
$titel_pages_rewrite = preg_replace('#\W#', "-", $titel_pages_rewrite);
$titel_pages_rewrite = preg_replace('#---#', "-", $titel_pages_rewrite);
$titel_pages_rewrite = preg_replace('#--#', "-", $titel_pages_rewrite);
/** normalerweise 1 Bindestrich am Ende */
$titel_pages_fert = "Content-pid---";
$titel_pages_fert.= "$titel_pages_rewrite---";
$titel_pages_fert.= $pages2[0];
$replace = "#".$pages1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_pages_fert, $content);
}
}
/**
* ############################################################################################
* ############################################################################################
* ############################################################################################
* Content-Modification Ende
* ############################################################################################
* ############################################################################################
* ############################################################################################
*/
//Web_Links Categorie
preg_match_all('#Web_Links-cid-(\d*)#', $content, $links, PREG_SET_ORDER);
foreach ($links as $links1){
$links2[0] = preg_replace('#Web_Links-cid-#', '', $links1[0]);
$abfrage = "SELECT title, cid FROM " . $prefix . "_links_categories WHERE cid = '$links2[0]'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
{
$titel_links_rewrite = $row["title"];
$titel_links_rewrite = str_replace($umlaute, $ersetzung, $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#\W#', "-", $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#---#', "-", $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#--#', "-", $titel_links_rewrite);
$titel_links_fert = "Web_Links-cid-";
$titel_links_fert.= "$titel_links_rewrite-";
$titel_links_fert.= $links2[0];
$replace = "#".$links1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_links_fert, $content);
}
}
//Web_Links Details
preg_match_all('#Web_Links-op-view-lid-(\d*)#', $content, $links, PREG_SET_ORDER);
foreach ($links as $links1){
$links2[0] = preg_replace('#Web_Links-op-view-lid-#', '', $links1[0]);
$abfrage = "SELECT title, lid FROM " . $prefix . "_links_links WHERE lid = '$links2[0]'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
{
$titel_links_rewrite = $row["title"];
$titel_links_rewrite = str_replace($umlaute, $ersetzung, $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#\W#', "-", $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#---#', "-", $titel_links_rewrite);
$titel_links_rewrite = preg_replace('#--#', "-", $titel_links_rewrite);
$titel_links_fert = "Web_Links-lid-";
$titel_links_fert.= "$titel_links_rewrite-";
$titel_links_fert.= $links2[0];
$replace = "#".$links1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_links_fert, $content);
}
}
// News Categorie
preg_match_all('#News-file-categories-catid-(\d*)#', $content, $news, PREG_SET_ORDER);
foreach ($news as $news1){
$news2[0] = preg_replace('#News-file-categories-catid-#', '', $news1[0]);
$abfrage = "SELECT title, catid FROM " . $prefix . "_stories_cat WHERE catid = '$news2[0]'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
{
$titel_news_rewrite = $row["title"];
$titel_news_rewrite = str_replace($umlaute, $ersetzung, $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#\W#', "-", $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#---#', "-", $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#--#', "-", $titel_news_rewrite);
$titel_news_fert = "News-cat-";
$titel_news_fert.= "$titel_news_rewrite-";
$titel_news_fert.= $news2[0];
$replace = "#".$news1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_news_fert, $content);
}
}
//News Details
preg_match_all('#News-file-article-sid-(\d*)#', $content, $news, PREG_SET_ORDER);
foreach ($news as $news1){
$news2[0] = preg_replace('#News-file-article-sid-#', '', $news1[0]);
$abfrage = "SELECT title, sid FROM " . $prefix . "_stories WHERE sid = '$news2[0]'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
{
$titel_news_rewrite = $row["title"];
$titel_news_rewrite = str_replace($umlaute, $ersetzung, $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#\W#', "-", $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#---#', "-", $titel_news_rewrite);
$titel_news_rewrite = preg_replace('#--#', "-", $titel_news_rewrite);
$titel_news_fert = "News-sid-";
$titel_news_fert.= "$titel_news_rewrite-";
$titel_news_fert.= $news2[0];
$replace = "#".$news1[0]."(?!\d)#";
$content = preg_replace($replace, $titel_news_fert, $content);
}
}
// Ende mod_rewrite
Bei meiner Test-Seite funktioniert es Wunderbar.
Aus der Kartegorie
/modules.php?name=Content&cid=1 wird nun
/Content-cid---Test-Kartegorie---1.html.
Und aus der Seite
/modules.php?name=Content&pid=17 wird
/Content-pid---Testseite---17.html
Da ich wie oben gesagt wenig Ahnung vom Coden habe, und die Basis von m-t stammt, weiß ich nicht, in wie weit mein programmiertes sicher ist.
Dann habe ich noch aus optischen Gründen im unteren Code in folgenden Zeilen
$titel_pages_fert = "Content-pid---"; und diese
$titel_pages_fert.= "$titel_pages_rewrite---"; drei Bindestriche eingefügt, um den eigentlichen Titel von der restlichen URL zu trennen.
Ob das nun irgendwelche Auswirkungen hat oder gegen Regeln verstößt, kann ich nicht sagen
Ich würde mich freuen, wenn es bei den 2 Punkten grünes Licht von den Adminisratoren geben würde...
Gruß
reddragon
PS:
ich packe die beiden geänderten Dateien mal in den Anhang, dann muss nicht jeder selber rumfummeln
