CMS - Der Dirigent » Support » Anwenderforum
Neue Umfrage | neues Thema | Antworten
Seiten: (2) 1 [2] ( Zum ersten neuen Beitrag )
Sonderzeichen und mod_rewrite, Titel für die Navigation
« Älteres Thema | Neueres Thema » Thema abonnieren | Thema versenden | Thema drucken
roberto | Geschrieben am: 25. Aug 2005 - 08:31 |
Unicoder Gruppe: Tester Beiträge: 1853 Mitgliedsnummer: 343 Mitglied seit: 16. Oct 2003 |
Ich sehe schon, Du hast noch ein ganz anderes Problem. Bisher bin ich davon ausgegangen, dass Du die Erweiterung 0.3 installiert hast. Die passt das System so an, dass Du utf-8 überhaupt erst benutzen kannst. Ohne die Erweiterung 0.3 kannst Du DeDi zwar sagen, dass es utf-8 benutzen kannst, das ist aber total buggy. Das entnehme ich jedenfalls Deinen Beschreibungen: QUOTE Die Sonderzeichen welche über den WYSIWYG-Editor eingegeben wurden und irgendwo im Text stehen, werden im Quelltext normal nach & #xxx; umgewandelt. Ja, das macht DeDi nur ohne die Anpassungen für utf-8. QUOTE Bloss die Sonderzeichen von Seiten- und Ordnertiteln welche ich im Backend eingebe, stehen als ü usw. im Quelltext. Also meiner Meinung nach ein Fehler von DeDi, dass die Sonderzeichen im Titel nicht nach & #xxx; umgewandelt werden. Die Kodierung als HTML-Entities (xx;) brauchst Du mit utf-8 nicht. Sowas macht nur Sinn, wenn man ein Zeichen darstellen will, das im verwendeten Zeichensatz nicht existiert. By the way - hast Du den Zeichensatz utf-8 bewußt gewählt? Gibt es einen bestimmten Grund. Angenommen, Du willst auf Deiner Seite garantiert nur deutsch, englisch, französisch haben, ist das nämlich komplett sinnlos. Du behängst Dich nur unnötig mit Problemen ... -------------------- Lokal: DeDi 1.01; SuSE 8.1 | Apache/1.3.26 & PHP 4.3.10 | MYSQL 3.23.52
|
Burgi1986 | Geschrieben am: 28. Aug 2005 - 12:46 |
Member Gruppe: Members Beiträge: 27 Mitgliedsnummer: 1119 Mitglied seit: 05. Mar 2005 |
Aaalso, ich hab mittlerweile nochmals ganz von vorne angefangen. Dedi (mit erweiterung 0.3 installiert). Zwei Sprachen angelegt (Deutsch und Englisch) beide utf-8 kodiert, da ich Sonderzeichen aus verschiedenen Sprachen (z.B slowakisch) verwenden können muss, welche in iso-8859-1 nicht vorhanden sind. Dann hab ich ganz normal angefangen eine Seite zu erstellen. Layout, Template, Ordner, dann die Seite. Im Titel des Ordners und der ersten Seite hab ich absichtlich zwei slowakisches Sonderzeichen ( Ž und č ), einen Umlaut ( ü ) und noch ein franz. Sonderzeichen ( é ) eingefügt. Dann den Ordner bzw die Seite gespeichert. Im Backend wird im Titel des Ordners das é und das ü ganz normal dargestellt. die slowakischen Sonderzeichen werden jedoch als & #381; und & #269; ausgeschrieben. Irgendwo in dedi muss es doch eine datei geben, welche die Ordner und Seitentitel welche im backend eingegeben werden, irgendwie umwandelt. Und da werden die slowakischen Sonderzeichen aus einem mir unbekannten Grund ausgelassen. Da diese Sonderzeichen dann anders im Quelltext stehen, führt das ganze im Frontend auch zu einem Problem mit mod_rewrite. Hat jemand eine Idee, was ich machen muss, dass im Backend diese Sonderzeichen richtig umgesetzt werden? Ich denke das würde auch mein problem mit mod_rewrite beheben. Mit etwas deprimierten Grüssen Burgi |
roberto | Geschrieben am: 28. Aug 2005 - 22:38 |
Unicoder Gruppe: Tester Beiträge: 1853 Mitgliedsnummer: 343 Mitglied seit: 16. Oct 2003 |
Ich nehme mal an, das das in der Navigation falsch angezeigt wird. Vielleicht zusätzlich in der Seite selbst? Dafür könnten die Module verantwortlich sein. Du solltes den Modul-Output-Bereich nach der Funktion htmlentities() durchforsten und durch htmlspecialchars() ersetzen. Wenn es nur um Slowakisch + Deutsch geht, kannst Du auch ISO-8859-2 nehmen. Deckt diese Sprachen ab: Deutsch, Kroatisch, Polnisch, Rumänisch, Slowakisch, Slowenisch, Tschechisch und Ungarisch (und Englisch natürlich). Wenn beides keine Lösung ist, würde ich mir das mal gerne online anschauen. -------------------- Lokal: DeDi 1.01; SuSE 8.1 | Apache/1.3.26 & PHP 4.3.10 | MYSQL 3.23.52
|
Burgi1986 | Geschrieben am: 01. Sep 2005 - 18:55 |
Member Gruppe: Members Beiträge: 27 Mitgliedsnummer: 1119 Mitglied seit: 05. Mar 2005 |
Ich hab mich während der dedi offline-zeit mal selbst auf die Suche gemacht, da musste ich doch tatsächlich feststellen, dass die MySQL nicht auf utf8 sondern iso-8859-1 eingestellt war. Somit speicherte diese Sonderzeichen welche nicht in iso-8859-1 enthalten sind als & #xxx; usw ab. Naja, mein Problem ist nun behoben - endgültig! *freu* |
Eppi | Geschrieben am: 01. Sep 2005 - 19:22 |
.....................noname Gruppe: Admin Beiträge: 8077 Mitgliedsnummer: 1 Mitglied seit: 23. Mar 2003 |
ahja, jetzt weiß ich auch endlich wie die html-entities zustande kommen, wenn man im iso abspeichert. beim convertieren übeer utf8_decode macht er nämlich keine. gruß, paul -------------------- "Heute ist nicht aller Tage... ich komm wieder, keine Frage!"
|
roberto | Geschrieben am: 01. Sep 2005 - 20:46 |
Unicoder Gruppe: Tester Beiträge: 1853 Mitgliedsnummer: 343 Mitglied seit: 16. Oct 2003 |
QUOTE (Burgi1986 @ 01. Sep 2005 - 19:55) Ich hab mich während der dedi offline-zeit mal selbst auf die Suche gemacht, da musste ich doch tatsächlich feststellen, dass die MySQL nicht auf utf8 sondern iso-8859-1 eingestellt war. Somit speicherte diese Sonderzeichen welche nicht in iso-8859-1 enthalten sind als & #xxx; usw ab. Aha... Darf man erfahren, welche Version Mysql Du hast? Vielleicht 4.1.x? -------------------- Lokal: DeDi 1.01; SuSE 8.1 | Apache/1.3.26 & PHP 4.3.10 | MYSQL 3.23.52
|
Burgi1986 | Geschrieben am: 13. Sep 2005 - 14:10 |
Member Gruppe: Members Beiträge: 27 Mitgliedsnummer: 1119 Mitglied seit: 05. Mar 2005 |
Sorry für die späte Antwort - war noch über's Wochenende verreist MySQL ist noch 4.0.20 |
roberto | Geschrieben am: 13. Sep 2005 - 16:41 |
Unicoder Gruppe: Tester Beiträge: 1853 Mitgliedsnummer: 343 Mitglied seit: 16. Oct 2003 |
Hmm. Merkwürdig. Ich habe bei 1&1 mysql 4.0.25. Habe die von Dir beschriebenen Probleme aber nicht. Leider kann ich weder etwas über das default-character-set des Servers noch über ein character set der Datenbank in Erfahrung bringen. Könnte mir allenfalls vorstellen, dass es damit zusammen hängt. -------------------- Lokal: DeDi 1.01; SuSE 8.1 | Apache/1.3.26 & PHP 4.3.10 | MYSQL 3.23.52
|
wsugar | Geschrieben am: 19. Dec 2006 - 13:04 |
Member Gruppe: Members Beiträge: 80 Mitgliedsnummer: 1808 Mitglied seit: 27. Jan 2006 |
QUOTE (Burgi1986 @ 28. Aug 2005 - 12:46) Im Titel des Ordners und der ersten Seite hab ich absichtlich zwei slowakisches Sonderzeichen ( Ž und č ), einen Umlaut ( ü ) und noch ein franz. Sonderzeichen ( é ) eingefügt. Dann den Ordner bzw die Seite gespeichert. Im Backend wird im Titel des Ordners das é und das ü ganz normal dargestellt. die slowakischen Sonderzeichen werden jedoch als & #381; und & #269; ausgeschrieben. hallo leute, bin sehr froh, dass das forum wieder online ist, nachdem ich ein gröberes problem lösen muss. das zitierte problem taucht bei mir auch auf (tschechisch), wobei ich allerdings bei der umsetzung der lösung (wie von Burgi1986 geschildert) scheitere. wie kann ich die "mysql auf utf8 umstellen" bzw. nachsehen, wie die einstellung aktuell aussieht. bitte um hilfe, danke! |
sidd | Geschrieben am: 11. May 2010 - 11:56 |
Member Gruppe: Members Beiträge: 119 Mitgliedsnummer: 912 Mitglied seit: 07. Dec 2004 |
hallo zusammen, hat schonmal jemand probleme mit einem / slash im seitentitel zu kämpfen gehabt? leider nimmt dedi diese nicht aus den urls im mod_rewrite_modus 2 raus. dadurch kommen bei mir fehlerhafte links zustande. kann mir jemand helfen? danke im voraus! -------------------- |
sidd | Geschrieben am: 17. May 2010 - 12:20 |
Member Gruppe: Members Beiträge: 119 Mitgliedsnummer: 912 Mitglied seit: 07. Dec 2004 |
nun ist fast eine ganze woche vergangen.... ich brauche wirklich dringend hilfe, damit die slashes aus den urls verschwinden...! -------------------- |
sidd | Geschrieben am: 17. May 2010 - 13:12 |
Member Gruppe: Members Beiträge: 119 Mitgliedsnummer: 912 Mitglied seit: 07. Dec 2004 |
hallo zusammen.... habe jetzt selbst eine lösung gefunden, mit den / im seitentitel fertig zu werden. hier meine mod_rewrite.php: mehr CODE <?php // Sonderzeichen tauschen function modrewrite_changecase($output) { $output = strtolower(trim($output)); $output=ereg_replace("(","",$output); $output=ereg_replace(")","",$output); $in = array("![ÄÆäæ]!", "![ÀÁÂÃÅàáâãå]!", "![ÖöØø]!", "![ÒÓÔÕòóôõ]!", "![Üü]!", "![ÙÚÛùúû]!", "![ÈÉÊËèéêë]!", "![ÌÍÎÏ]!", "![Ýý]!", "![Çç]!", "![ÐðþÞ]!", "![Ññ]!", "![Šš]!", "![Žž]!", "!ß!", "!&!", "!¡!", "!§!", "!€!", "!¥!", "!£!", "!["'?s]!", "![,:<>@[]{-`ƒ-‰‹‘-•˜›¡¤¦¨-¿]!"); $out = array('ae', 'a', 'oe', 'o', 'ue', 'u', 'e', 'i', 'y', 'c', 'th', 'n', 's', 'z', 'ss', 'und', '!', 'paragraph', 'euro', 'yen', 'pound', '_', ''); $output = preg_replace($in, $out, $output); return $output; } // con_tree um 'modrewrite_name' erweitern & passende idcat zurückgeben function modrewrite_get_idcat($path) { global $con_tree, $catlist, $cfg_client, $rewrite_sid, $sess, $dedi_rewrite, $tree, $tmp_tree; $tree = explode('/', $path); for ($i=0, $x=count($catlist); $i<=$x; $i++) { $tmp_tree[0]['modrewrite_name'] = modrewrite_get_lang_name(); $tmp_tree[$catlist[$i]]['modrewrite_name'] = $tmp_tree[$con_tree[$catlist[$i]]['parent']]['modrewrite_name'].ereg_replace("/","-",modrewrite_changecase($con_tree[$catlist[$i]]['name'])).'/'; if ($path == $tmp_tree[$catlist[$i]]['modrewrite_name'] || $path.'/' == $tmp_tree[$catlist[$i]]['modrewrite_name']) $idcat = $catlist[$i]; } if (isset($idcat)) return $idcat; } // passende idcatside zurückgeben function modrewrite_get_idcatside($page, $idcat='0') { global $con_side, $con_tree, $cfg_client; // Dateiname aus Pfad auslesen - muß doch auch einfacher gehen if (is_array($con_side)) { while (list($id, $entry) = each($con_side)) { $tmp_name = ($con_side[$id]['is_start'] == '1') ? 'index' : ereg_replace("/","-",modrewrite_changecase($entry['name'])); if ($idcat == $entry['idcat'] && $page == $tmp_name) $idcatside = $id; $con_side[$id]['modrewrite_name'] = $tmp_name; } } if (isset($idcatside)) return $idcatside; } // Name der Sprache suchen function modrewrite_get_lang_name() { global $db, $dedi_db, $cfg_client, $lang; # könnte eingespart werden, gleich bei den Rechten mit einlesen if (!isset($cfg_client['lang'])) { $sql = "SELECT name FROM ".$dedi_db['lang']." WHERE idlang = '$lang' LIMIT 0, 1"; $db->query($sql); $db->next_record(); $cfg_client['lang'] = $db->f('name'); } return modrewrite_changecase($cfg_client['lang']).'/'; } function modrewrite_idcat_to_path($matches) { global $con_tree, $cfg_client, $lang, $sess, $rewrite_sid, $tree, $tmp_tree; if (!empty($matches[2])) $matches[2] = ','.substr($matches[2], 1, strlen($matches[2])-2); switch ($cfg_client['url_rewrite']) { case '1': if ($matches[3] == '&' || $matches[3] == '&') $matches[3] = '?'; if ($lang != $cfg_client['startlang']) $tmp_lang = $lang; // Session gewechselt $tmp_sid = str_replace('?sid=', '', $sess->url('')); if ($tmp_sid != $rewrite_sid && !empty($tmp_sid)) { return $cfg_client['modrewrite_path'].$tmp_sid.'/'.$tmp_lang.'cat'.$matches[1].$matches[2].'.html'.$matches[3]; } else { // auf Cookie umschalten if (!empty($rewrite_sid) && !empty($_COOKIE['sid'])) { return $cfg_client['modrewrite_path'].$tmp_lang.'cat'.$matches[1].$matches[2].'.html'.$matches[3]; } else return $cfg_client['modrewrite_treepath'].$tmp_lang.'cat'.$matches[1].$matches[2].'.html'.$matches[3]; } case '2': if (!isset($con_tree[$matches[1]]['modrewrite_name'])) { // Session gewechselt $tmp_sid = str_replace('?sid=', '', $sess->url('')); if ($tmp_sid != $rewrite_sid && !empty($tmp_sid)) { $con_tree[$matches[1]]['modrewrite_name'] = $cfg_client['modrewrite_path'].$tmp_sid.'/'.$tmp_tree[$matches[1]]['modrewrite_name']; } else { // auf Cookie umschalten if ((!empty($rewrite_sid) && !empty($_COOKIE['sid'])) || isset($dedi_rewrite['start'])) { $con_tree[$matches[1]]['modrewrite_name'] = $cfg_client['modrewrite_path'].$tmp_tree[$matches[1]]['modrewrite_name']; } else { // relativen Pfad zur aktuellen Seite aufbauen $tmp_path = explode('/', $tmp_tree[$matches[1]]['modrewrite_name']); for ($a=0,$b=count($tree)-1; $a<$b; $a++) if ($tree[$a] != $tmp_path[$a]) break; for ($d=0,$z=$b-$a; $d<$z; $d++) $con_tree[$matches[1]]['modrewrite_name'] = $con_tree[$matches[1]]['modrewrite_name'].'../'; for ($z=count($tmp_path)-1; $a<$z; $a++) if (!empty($tmp_path[$a])) $con_tree[$matches[1]]['modrewrite_name'] = $con_tree[$matches[1]]['modrewrite_name'].$tmp_path[$a].'/'; } } } if ($matches[3] == '&' || $matches[3] == '&') $matches[3] = '?'; return $con_tree[$matches[1]]['modrewrite_name'].'index'.$matches[2].'.html'.$matches[3]; default: if (!empty($matches[2]) && $matches[2] != ',') { $tmp_matches[2] = explode(',', $matches[2]); if (is_array($tmp_matches[2])) { unset($matches[2]); for ($a=2,$b=count($tmp_matches[2]); $a<$b; $a++) $matches[2] = $matches[2].','.$tmp_matches[2][$a]; $matches[2] = '&get_'.$tmp_matches[2][1].'='.substr($matches[2], 1); } else unset($matches[2]); } if ($matches[3] == '?' || $matches[3] == '&') $matches[3] = '&'; if ($lang != $cfg_client['startlang']) { return $sess->url($cfg_client['modrewrite_path'].$cfg_client['contentfile'].'?lang='.$lang.'&idcat='.$matches[1].$matches[2]).$matches[3]; } else return $sess->url($cfg_client['modrewrite_path'].$cfg_client['contentfile'].'?idcat='.$matches[1].$matches[2]).$matches[3]; } } function modrewrite_idcatside_to_path($matches) { #var_dump($matches); global $con_side, $con_tree, $cfg_client, $lang, $sess, $rewrite_sid, $tree, $tmp_tree; if (!empty($matches[2])) $matches[2] = ','.substr($matches[2], 1, strlen($matches[2])-2); switch ($cfg_client['url_rewrite']) { case '1': if ($matches[3] == '&' || $matches[3] == '&') $matches[3] = '?'; if ($lang != $cfg_client['startlang']) $tmp_lang = $lang; // Session gewechselt $tmp_sid = str_replace('?sid=', '', $sess->url('')); if ($tmp_sid != $rewrite_sid && !empty($tmp_sid)) { return $cfg_client['modrewrite_path'].$tmp_sid.'/'.$tmp_lang.'side'.$matches[1].$matches[2].'.html'.$matches[3]; } else { // auf Cookie umschalten if (!empty($rewrite_sid) && !empty($_COOKIE['sid'])) { return $cfg_client['modrewrite_path'].$tmp_lang.'side'.$matches[1].$matches[2].'.html'.$matches[3]; } else return $cfg_client['modrewrite_treepath'].$tmp_lang.'side'.$matches[1].$matches[2].'.html'.$matches[3]; } case '2': if (!isset($con_tree[$con_side[$matches[1]]['idcat']]['modrewrite_name'])) { // Session gewechselt $tmp_sid = str_replace('?sid=', '', $sess->url('')); if ($tmp_sid != $rewrite_sid && !empty($tmp_sid)) { $con_tree[$con_side[$matches[1]]['idcat']]['modrewrite_name'] = $cfg_client['modrewrite_path'].$tmp_sid.'/'.$tmp_tree[$con_side[$matches[1]]['idcat']]['modrewrite_name']; } else { // auf Cookie umschalten if ((!empty($rewrite_sid) && !empty($_COOKIE['sid'])) || isset($dedi_rewrite['start'])) { $con_tree[$con_side[$matches[1]]['idcat']]['modrewrite_name'] = $cfg_client['modrewrite_path'].$tmp_tree[$con_side[$matches[1]]['idcat']]['modrewrite_name']; } else { // relativen Pfad zur aktuellen Seite aufbauen $tmp_path = explode('/', $tmp_tree[$con_side[$matches[1]]['idcat']]['modrewrite_name']); for ($a=0,$b=count($tree)-1; $a<$b; $a++) if ($tree[$a] != $tmp_path[$a]) break; for ($d=0,$z=$b-$a; $d<$z; $d++) $con_tree[$con_side[$matches[1]]['idcat']]['modrewrite_name'] = $con_tree[$con_side[$matches[1]]['idcat']]['modrewrite_name'].'../'; for ($z=count($tmp_path)-1; $a<$z; $a++) if (!empty($tmp_path[$a])) $con_tree[$con_side[$matches[1]]['idcat']]['modrewrite_name'] = $con_tree[$con_side[$matches[1]]['idcat']]['modrewrite_name'].$tmp_path[$a].'/'; } } } if ($matches[3] == '&' || $matches[3] == '&') $matches[3] = '?'; return $con_tree[$con_side[$matches[1]]['idcat']]['modrewrite_name'].$con_side[$matches[1]]['modrewrite_name'].$matches[2].'.html'.$matches[3]; default: if (!empty($matches[2]) && $matches[2] != ',') { $tmp_matches[2] = explode(',', $matches[2]); if (is_array($tmp_matches[2])) { unset($matches[2]); for ($a=2,$b=count($tmp_matches[2]); $a<$b; $a++) $matches[2] = $matches[2].','.$tmp_matches[2][$a]; $matches[2] = '&get_'.$tmp_matches[2][1].'='.substr($matches[2], 1); } else unset($matches[2]); } if ($matches[3] == '?' || $matches[3] == '&') $matches[3] = '&'; if ($lang != $cfg_client['startlang']) { return $sess->url($cfg_client['modrewrite_path'].$cfg_client['contentfile'].'?lang='.$lang.'&idcatside='.$matches[1].$matches[2]).$matches[3]; } else return $sess->url($cfg_client['modrewrite_path'].$cfg_client['contentfile'].'?idcatside='.$matches[1].$matches[2]).$matches[3]; } } function modrewrite_contentfile_idcat($matches) { $tmp_matches[1] = $matches[2]; $tmp_matches[3] = $matches[3]; return modrewrite_idcat_to_path($tmp_matches); } function modrewrite_contentfile_idcatside($matches) { $tmp_matches[1] = $matches[2]; $tmp_matches[3] = $matches[3]; return modrewrite_idcatside_to_path($tmp_matches); } function modrewrite_root($matches) { global $lang, $cfg_client; if ($matches[1] == '&' || $matches[1] == '&') $matches[1] = '?'; switch ($cfg_client['url_rewrite']) { case '1': return $cfg_client['modrewrite_path'].'index.html'.$matches[1]; case '2': return $cfg_client['modrewrite_path'].modrewrite_get_lang_name().'index.html'.$matches[1]; default: return $cfg_client['modrewrite_path'].$cfg_client['contentfile'].$matches[1]; } } function modrewrite_get_values() { global $rewrite_values, $rewrite_path, $cfg_client, $_GET; if (!empty($rewrite_values) && $rewrite_values != '.html') { if (!empty($rewrite_path)) $rewrite_path = $rewrite_path.'.html'; $rewrite_values = substr($rewrite_values, 0, -5); $rewrite_values = explode(',', $rewrite_values); if (!empty($rewrite_values['1'])) { for ($a=2, $b=count($rewrite_values); $a<$b; $a++) { $cfg_client['get'][$rewrite_values['1']][] = $rewrite_values[$a]; } } } foreach ($_GET as $key => $value) { if (substr($key, 0, 4) == 'get_') { $name = substr($key, 4); if (!empty($name)) { $cfg_client['get'][$name] = explode(',', $value); } } } } function modrewrite_path($code) { global $cfg_client, $rewrite_path, $idcat, $idcatside, $rewrite_sid; // Variablen herausfiltern modrewrite_get_values(); // auf Cookie umschalten if (!empty($rewrite_sid)) $cfg_client['modrewrite_spath'] = '../'; if ($cfg_client['url_rewrite'] == '2' || isset($rewrite_path)) { $path = modrewrite_changecase(urldecode($rewrite_path)); if (strrchr($path, '.') == '.html') { $page = substr(strrchr($path, '/'), 1); $path = str_replace($page, '', $path); $page = substr($page, 0, -5); } if (isset($rewrite_path)) for ($i=0, $m=substr_count($rewrite_path, '/'); $i<$m; $i++) $cfg_client['modrewrite_treepath'] = $cfg_client['modrewrite_treepath'].'../'; $cfg_client['modrewrite_path'] = $cfg_client['modrewrite_spath'].$cfg_client['modrewrite_treepath']; $tmp_idcat = modrewrite_get_idcat($path); $tmp_idcatside = modrewrite_get_idcatside($page, $tmp_idcat); if (empty($idcat) && empty($idcatside)) { $idcat = $tmp_idcat; $idcatside = $tmp_idcatside; } } unset($rewrite_path, $rewrite_sid); $cfg_client['modrewrite_path'] = $cfg_client['modrewrite_spath'].$cfg_client['modrewrite_treepath']; } function modrewrite_filepath($matches) { global $db, $dedi_db, $dedi_file, $cfg_client, $code, $client, $sess; if (!isset($dedi_file)) { preg_match_all("!http://dedilink/fileid=(d+)!", $code, $internlinks); $sql_links = implode(',', $internlinks[1]); if (!empty($sql_links)) { # gleich noch auf recht überprüfen $sql = "SELECT A.idupl id, A.filename filename,B.dirname dirname FROM ".$dedi_db['upl']." as A LEFT JOIN ". $dedi_db['directory'] ." as B USING(iddirectory) WHERE A.idclient=$client AND A.idupl IN ($sql_links)"; $db->query($sql); while($db->next_record()) $dedi_file[$db->f('id')] = $db->f('dirname').$db->f('filename'); } } // relativen pfad berechnen # $cfg_client['modrewrite_path'] ../ auslesen - relativer pfad zum downloadbereich if ($cfg_client['download_control'] == 1) { $path = ($cfg_client['url_rewrite'] == 0) ? $sess->url($cfg_client['modrewrite_path'].'cms/inc/download.php?id='.$matches[1]) : $sess->url($cfg_client['upl_htmlpath'].$dedi_file[$matches[1]]); } else $path = $cfg_client['upl_htmlpath'].$dedi_file[$matches[1]]; # wenn path vorhanden relativen pfad davorsetzen dafür upl_htmlpath entfernen! - aktuelle tiefe return $path; } function modrewrite_replace($output) { global $cfg_client, $auth, $idcatside, $rewrite_values; // alle relativen Pfade anpassen if (!empty($cfg_client['modrewrite_path'])) { $in = array("/(src|href|background|action)=(["'])(?!w+:|#|".$cfg_client['contentfile'].")/?([^"']+)(["'])/i", "/url(s*["']?(?!w+:|#|".$cfg_client['contentfile'].")/?([^"')]+)["']?s*)/i"); $out = array("\1=\2".$cfg_client['modrewrite_path']."\3\4", "url(".$cfg_client['modrewrite_path']."\1)"); $output = preg_replace($in, $out, $output); } // Dedilinks ersetzen $in = array("'(?<!/)".$cfg_client['contentfile']."?lang=([1-9][0-9]?)&idcat=([1-9][0-9]*)(&|&|?)?'", "'(?<!/)".$cfg_client['contentfile']."?lang=([1-9][0-9]?)&idcatside=([1-9][0-9]*)(&|&|?)?'", "'(?<!/)".$cfg_client['contentfile']."(&|&|?)?'", "!http://dedilink/idcat=(d+)([.*])?(&|&|?)?!", "!http://dedilink/idcatside=(d+)([.*])?(&|&|?)?!", "'http://dedilink/fileid=(d+)'"); $out = array("modrewrite_contentfile_idcat", "modrewrite_contentfile_idcatside", "modrewrite_root", "modrewrite_idcat_to_path", "modrewrite_idcatside_to_path", "modrewrite_filepath"); foreach ($in as $n => $v) $output = preg_replace_callback($v, $out[$n], $output); // Dateilinks ersetzen $output = str_replace($cfg_client['htmlpath'], $cfg_client['modrewrite_path'], $output); return $output; } ?> -------------------- |
Thema wird von 0 Benutzer gelesen (0 Gäste und 0 Anonyme Benutzer)
0 Mitglieder:
26 Antworten seit 12. May 2005 - 19:48
Thema abonnieren | Thema versenden | Thema drucken
Seiten: (2) 1 [2]