*/ require_once "common.php"; $access_control->su_check(access_control::SU_RIGHT_SOURCEVIEW,true); page_header("Source Editor"); addnav('Zurück'); grotto_nav(); addnav('Aktionen'); $url=$_GET['url']; $dir = str_replace("\\","/",dirname($url)."/"); //$subdir = str_replace("\\","/",dirname($_SERVER['SCRIPT_NAME'])."/"); //while(substr($subdir,0,2)=="//" ){ // $subdir = substr($subdir,1); //} $subdir='/'; $legal_dirs = array( array('dir'=>$subdir,'td'=>1), array('dir'=>$subdir.'special/','td'=>1), array('dir'=>$subdir.'lib/','td'=>0), array('dir'=>$subdir.'item_modules/','td'=>0), array('dir'=>$subdir.'module/','td'=>1), ); // DB-Zugangsdaten bleiben verborgen $illegal_files = array('dbconnect.php','su_sourceedit.php','source.php'); $str_out = ''; $str_out .= '`c`b`&Source Editor`0`b`c'; if($session['message'] != '') { output('`n`b'.$session['message'].'`b`n`n'); $session['message'] = ''; } switch($_GET['op']) { case 'edit': $access_control->su_check(access_control::SU_RIGHT_SOURCEEDIT,true); $session['disablevital'] = false; //true macht Anzeigefehler im DS-Skin. Und Speichern geht sowieso nicht $BOOL_COMMENTAREA = true; $file = '.'.urldecode($_GET['file']); $fp = @fopen($file, "rt"); $buffer = @fread($fp, filesize($file)); @fclose($fp); addnav('','su_sourceedit.php'); $str_out .= '`n`c`&`b'.$file.'`b`c`n'; $str_out .= 'zurück`n`n'; $str_out .= '
`n'; $str_out .= ''; $str_out .= '
'; addnav('','su_sourceedit.php?op=save'); break; case 'show': $file = '.'.urldecode($_GET['file']); $str_out .= '`n`c`&`b'.$file.'`b`c`n'; $buffer = highlight_file( $file, true ); $rows = count(explode('
',$buffer)); $znr = ''; for($i=1; $i <= $rows; $i++) { $znr .= "$i:
"; } $buffer = ''.$buffer.''; $str_out .= '
'.$znr.' '; output($str_out); $output .= $buffer; $str_out = '
'; addnav("Zurück","su_sourceedit.php"); break; // Speichern case 'save': $access_control->su_check(access_control::SU_RIGHT_SOURCEEDIT,true); $text = $_POST['text']; $file = $_POST['filename']; $len = strlen($text); if(!is_writable($file)){ chmod($file, 0666); } $fp = @fopen($file, 'wt'); if(@fwrite($fp, $text, $len) == $len) { $session['message'] = '`@Datei erfolgreich gespeichert!`0'; } else { $session['message'] = '`$Fehler beim Speichern!`0'; } @fclose($fp); chmod($file, 0644); redirect('su_sourceedit.php'); break; // Standardansicht, Auswahl default: $session['disablevital'] = false; $files = array(); foreach( $legal_dirs as $curr_dir ){ $d = dir('./'.$curr_dir['dir']); $files[$curr_dir['dir']] = array(); while (false !== ($entry = $d->read())) { $end = substr($entry,strrpos($entry,".")); if( $end != '.php' && $end != '.lib.php' ){ continue; } array_push($files[$curr_dir['dir']],$entry); } sort($files[$curr_dir['dir']]); } $str_out .= '`c'; $lasttd = 1; foreach( $legal_dirs as $curr_dir ){ if( $lasttd ){ $str_out .= ''; } $lasttd = $curr_dir['td']; } $str_out .= '
'; } $str_out .= ''; foreach( $files[$curr_dir['dir']] as $file ){ if( in_array( $file, $illegal_files ) ){ continue; } $style = ($style == 'trlight' ? 'trdark' : 'trlight'); if($access_control->su_check(access_control::SU_RIGHT_SOURCEEDIT)) { $editlink = create_lnk('edit','su_sourceedit.php?op=edit&file='.urlencode($curr_dir['dir'].$file)); } if($access_control->su_check(access_control::SU_RIGHT_SOURCEVIEW)) { $showlink = create_lnk('show','su_sourceedit.php?op=show&file='.urlencode($curr_dir['dir'].$file)); } $str_out .= ''; } //$str_out .= ''; if( $curr_dir['td'] ){ $str_out .= '
`c.'.$curr_dir['dir'].'`c
'.$file.' [ '.$editlink.' ] [ '.$showlink.' ]
`c'; break; } output( $str_out, true ); page_footer();