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 (&#xxx;) 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 ... cool.gif

--------------------

Lokal: DeDi 1.01; SuSE 8.1 | Apache/1.3.26 & PHP 4.3.10 | MYSQL 3.23.52
Top   
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
Top   
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
Top   
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*
Top   
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!"
Top   
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
Top   
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 wink.gif
MySQL ist noch 4.0.20
Top   
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
Top   
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!
Top   
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!

--------------------

Firma: www.screengarden.de

und mein privates : Quicktune.de
Top    
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.... dry.gif sad.gif ich brauche wirklich dringend hilfe, damit die slashes aus den urls verschwinden...!

--------------------

Firma: www.screengarden.de

und mein privates : Quicktune.de
Top    
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] == '&amp;' || $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] == '&amp;' || $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] = '&amp;get_'.$tmp_matches[2][1].'='.substr($matches[2], 1);
   } else unset($matches[2]);
                        }
  if ($matches[3] == '?' || $matches[3] == '&') $matches[3] = '&amp;';
  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] == '&amp;' || $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] == '&amp;' || $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] = '&amp;get_'.$tmp_matches[2][1].'='.substr($matches[2], 1);
   } else unset($matches[2]);
                        }
  if ($matches[3] == '?' || $matches[3] == '&') $matches[3] = '&amp;';
  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] == '&amp;' || $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]*)(&amp;|&|?)?'",
     "'(?<!/)".$cfg_client['contentfile']."?lang=([1-9][0-9]?)&idcatside=([1-9][0-9]*)(&amp;|&|?)?'",
                    "'(?<!/)".$cfg_client['contentfile']."(&amp;|&|?)?'",
                    "!http://dedilink/idcat=(d+)([.*])?(&amp;|&|?)?!",
            "!http://dedilink/idcatside=(d+)([.*])?(&amp;|&|?)?!",
     "'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;
}
?>

--------------------

Firma: www.screengarden.de

und mein privates : Quicktune.de
Top    

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] 

<< Zurück zu Anwenderforum

Neue Umfrage | neues Thema

Home | Das Projekt | Download | Entwicklung | Dokumentation | Forum | Impressum