open($path) === TRUE) { //make all the folders for($i = 0; $i < $zip->numFiles; $i++) { $OnlyFileName = $zip->getNameIndex($i); $FullFileName = $zip->statIndex($i); if (substr($FullFileName['name'], -1, 1) =="/") { create_folder($base_folder.$FullFileName['name']); } } //unzip into the folders for($i = 0; $i < $zip->numFiles; $i++) { $OnlyFileName = $zip->getNameIndex($i); $FullFileName = $zip->statIndex($i); if (!(substr($FullFileName['name'], -1, 1) =="/")) { $fileinfo = pathinfo($OnlyFileName); if(in_array(strtolower($fileinfo['extension']),$ext)) { copy('zip://'. $path .'#'. $OnlyFileName , $base_folder.$FullFileName['name'] ); } } } $zip->close(); } else { die(lang_Zip_No_Extract); } break; case "gz": $p = new PharData($path); $p->decompress(); // creates files.tar break; case "tar": // unarchive from the tar $phar = new PharData($path); $phar->decompressFiles(); $files = array(); check_files_extensions_on_phar( $phar, $files, '', $ext ); $phar->extractTo( $current_path.fix_dirname( $_POST['path'] )."/", $files, TRUE ); break; default: die(lang_Zip_Invalid); } break; case 'media_preview': $preview_file = $_GET["file"]; $info = pathinfo($preview_file); ?>
r   w   x  
'.lang_User.'
'.lang_Group.'
'.lang_All.'
'; if (is_dir($path)){ $ret .= '
'.lang_File_Permission_Recursive.'
'; } $ret .= '
'; echo $ret; } break; case 'get_lang': if (!file_exists('lang/languages.php')){ die(lang_Lang_Not_Found); } require_once('lang/languages.php'); if (!isset($languages) || !is_array($languages)){ die(lang_Lang_Not_Found); } $curr = $_SESSION['RF']['language']; $ret = ''; echo $ret; break; case 'change_lang': $choosen_lang = $_POST['choosen_lang']; if (!file_exists('lang/'.$choosen_lang.'.php')) { die(lang_Lang_Not_Found); } $_SESSION['RF']['language'] = $choosen_lang; $_SESSION['RF']['language_file'] = 'lang/'.$choosen_lang.'.php'; break; case 'get_file': // preview or edit $sub_action = $_GET['sub_action']; if ($sub_action != 'preview' && $sub_action != 'edit'){ die("wrong action"); } $selected_file = ($sub_action == 'preview' ? $_GET['file'] : $current_path.$_POST['path']); $info = pathinfo($selected_file); if (!file_exists($selected_file)) { die(lang_File_Not_Found); } $is_allowed = ($sub_action == 'preview' ? $preview_text_files : $edit_text_files); $allowed_file_exts = ($sub_action == 'preview' ? $previewable_text_file_exts : $editable_text_file_exts); if (!isset($allowed_file_exts) || !is_array($allowed_file_exts)){ $allowed_file_exts = array(); } if (!in_array($info['extension'], $allowed_file_exts) || !isset($is_allowed) || $is_allowed === FALSE || !is_readable($selected_file)) { die(sprintf(lang_File_Open_Edit_Not_Allowed, ($sub_action == 'preview' ? strtolower(lang_Open) : strtolower(lang_Edit)))); } // get and sanities $data = file_get_contents($selected_file); $data = htmlspecialchars($data); $data = stripslashes($data); if ($sub_action == 'preview') { // echo '

'.$info['basename'].'

'.$data.'
'; echo '

'.$info['basename'].'

'; } else { echo ''; } break; default: die('no action passed'); } } else { die('no action passed'); } ?>