X-Git-Url: http://git.vanrenterghem.biz/www.vanrenterghem.biz.git/blobdiff_plain/4b1ce0d83844cfd7c55e75a60ccb239882cd62e3..83ab5456767602f2a9860a7db7247f002ec96945:/phpBB2/admin/xs_edit.php diff --git a/phpBB2/admin/xs_edit.php b/phpBB2/admin/xs_edit.php deleted file mode 100644 index 24e5bee..0000000 --- a/phpBB2/admin/xs_edit.php +++ /dev/null @@ -1,513 +0,0 @@ -xs_version) || $template->xs_version !== 8) -{ - message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php'); -} - -define('IN_XS', true); -include_once('xs_include.' . $phpEx); - - -// check filter -$filter = isset($HTTP_GET_VARS['filter']) ? stripslashes($HTTP_GET_VARS['filter']) : (isset($HTTP_POST_VARS['filter']) ? stripslashes($HTTP_POST_VARS['filter']) : ''); -if(isset($HTTP_POST_VARS['filter_update'])) -{ - $filter_data = array( - 'ext' => trim(stripslashes($HTTP_POST_VARS['filter_ext'])), - 'data' => trim(stripslashes($HTTP_POST_VARS['filter_data'])) - ); - $filter = serialize($filter_data); -} -else -{ - $filter_data = @unserialize($filter); - if(empty($filter_data['ext'])) - { - $filter_data['ext'] = ''; - } - if(empty($filter_data['data'])) - { - $filter_data['data'] = ''; - } -} -$filter_str = '?filter=' . urlencode($filter); - - -$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_edit_templates'] . '')); - -$editable = array('.htm', '.html', '.tpl', '.css', '.txt', '.cfg', '.xml', '.php', '.htaccess'); - -// get current directory -$current_dir = isset($HTTP_GET_VARS['dir']) ? stripslashes($HTTP_GET_VARS['dir']) : (isset($HTTP_POST_VARS['dir']) ? stripslashes($HTTP_POST_VARS['dir']) : 'templates'); -$current_dir = xs_fix_dir($current_dir); -if(defined('DEMO_MODE') && substr($current_dir, 0, 9) !== 'templates') -{ // limit access to "templates" in demo mode - $current_dir = 'templates'; -} -$dirs = explode('/', $current_dir); -for($i=0; $iassign_vars(array( - 'FILTER_EXT' => htmlspecialchars($filter_data['ext']), - 'FILTER_DATA' => htmlspecialchars($filter_data['data']), - 'FILTER_URL' => append_sid('xs_edit.'.$phpEx), - 'FILTER_DIR' => htmlspecialchars($current_dir), - 'S_FILTER' => '' - )); - - -/* -* show edit form -*/ -if(isset($HTTP_GET_VARS['edit']) && !empty($HTTP_GET_VARS['restore'])) -{ - $file = stripslashes($HTTP_GET_VARS['edit']); - $file = xs_fix_dir($file); - $fullfile = $current_dir_root . $file; - $localfile = '../' . $fullfile; - $hash = md5($localfile); - $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['restore']) . XS_BACKUP_EXT; - if(@file_exists($backup_name)) - { - // restore file - $HTTP_POST_VARS['edit'] = $HTTP_GET_VARS['edit']; - $HTTP_POST_VARS['content'] = addslashes(implode('', @file($backup_name))); - unset($HTTP_GET_VARS['edit']); - $return_file = str_replace('{URL}', append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), $lang['xs_edittpl_back_edit']); - $return_url = $return_file . '

' . $return_dir; - } -} - - -/* -* save modified file -*/ -if(isset($HTTP_POST_VARS['edit']) && !defined('DEMO_MODE')) -{ - $file = stripslashes($HTTP_POST_VARS['edit']); - $content = stripslashes($HTTP_POST_VARS['content']); - $fullfile = $current_dir_root . $file; - $localfile = '../' . $fullfile; - if(!empty($HTTP_POST_VARS['trim'])) - { - $content = trim($content); - } - if(!empty($HTTP_POST_FILES['upload']['tmp_name']) && @file_exists($HTTP_POST_FILES['upload']['tmp_name'])) - { - $content = @implode('', @file($HTTP_POST_FILES['upload']['tmp_name'])); - } - $params = array( - 'edit' => $file, - 'dir' => $current_dir, - 'content' => $content, - 'filter' => $filter, - ); - $return_file = str_replace('{URL}', append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), $lang['xs_edittpl_back_edit']); - $return_url = $return_file . '

' . $return_dir; - // get ftp configuration - $write_local = false; - if(!get_ftp_config(append_sid('xs_edit.'.$phpEx), $params, true)) - { - xs_exit(); - } - xs_ftp_connect(append_sid('xs_edit.'.$phpEx), $params, true); - if($ftp === XS_FTP_LOCAL) - { - $write_local = true; - $local_filename = $localfile; - } - else - { - $local_filename = XS_TEMP_DIR . 'edit_' . time() . '.tmp'; - } - $f = @fopen($local_filename, 'wb'); - if(!$f) - { - xs_error($lang['xs_error_cannot_open'] . '

' . $return_url); - } - fwrite($f, $content); - fclose($f); - if($write_local) - { - xs_message($lang['Information'], $lang['xs_edit_file_saved'] . '

' . $return_url); - } - // generate ftp actions - $actions = array(); - // chdir to template directory - for($i=0; $i 'chdir', - 'dir' => $dirs[$i] - ); - } - $actions[] = array( - 'command' => 'upload', - 'local' => $local_filename, - 'remote' => $fullfile - ); - $ftp_log = array(); - $ftp_error = ''; - $res = ftp_myexec($actions); - echo ""; - @unlink($local_filename); - if($res) - { - xs_message($lang['Information'], $lang['xs_edit_file_saved'] . '

' . $return_url); - } - xs_error($ftp_error . '

' . $return_url); -} - - -/* -* show edit form -*/ -if(isset($HTTP_GET_VARS['edit'])) -{ - $file = stripslashes($HTTP_GET_VARS['edit']); - $file = xs_fix_dir($file); - $fullfile = $current_dir_root . $file; - $localfile = '../' . $fullfile; - $hash = md5($localfile); - if(!@file_exists($localfile)) - { - xs_error($lang['xs_edit_not_found'] . '

' . $return_url); - } - $content = @file($localfile); - if(!is_array($content)) - { - xs_error($lang['xs_edit_not_found'] . '

' . $return_url); - } - $content = implode('', $content); - if(isset($HTTP_GET_VARS['download']) && !defined('DEMO_MODE')) - { - xs_download_file($file, $content); - xs_exit(); - } - if(isset($HTTP_GET_VARS['downloadbackup']) && !defined('DEMO_MODE')) - { - $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['downloadbackup']) . XS_BACKUP_EXT; - xs_download_file($file, implode('', @file($backup_name))); - xs_exit(); - } - $return_file = str_replace('{URL}', append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), $lang['xs_edittpl_back_edit']); - $return_url = $return_file . '

' . $return_dir; - $template->assign_vars(array( - 'U_ACTION' => append_sid('xs_edit.'.$phpEx), - 'U_BROWSE' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir)), - 'U_EDIT' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)), - 'U_BACKUP' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dobackup=1&dir='.urlencode($current_dir).'&edit='.urlencode($file)), - 'U_DOWNLOAD' => append_sid('xs_edit.'.$phpEx.$filter_str.'&download=1&dir='.urlencode($current_dir).'&edit='.urlencode($file)), - 'CURRENT_DIR' => htmlspecialchars($current_dir_full), - 'DIR' => htmlspecialchars($current_dir), - 'FILE' => htmlspecialchars($file), - 'FULLFILE' => htmlspecialchars($fullfile), - 'CONTENT' => defined('DEMO_MODE') ? $lang['xs_error_demo_edit'] : htmlspecialchars($content), - ) - ); - if($current_dir_full) - { - $template->assign_block_vars('nav_left',array('ITEM' => '» ' . htmlspecialchars($current_dir_full) . '')); - } - - // show tree - $arr = array(); - $template->assign_block_vars('tree', array( - 'ITEM' => 'phpBB', - 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='), - 'SEPARATOR' => '', - )); - $back_dir = ''; - for($i=0; $i ($i + 1)) - { - $back_dir = $str; - } - $template->assign_block_vars('tree', array( - 'ITEM' => htmlspecialchars($dirs[$i]), - 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($str)), - 'SEPARATOR' => '/', - )); - } - - // view backup - if(!empty($HTTP_GET_VARS['viewbackup']) && !defined('DEMO_MODE')) - { - $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['viewbackup']) . XS_BACKUP_EXT; - $template->assign_vars(array( - 'CONTENT' => implode('', @file($backup_name)) - ) - ); - } - - // save backup - if(isset($HTTP_GET_VARS['dobackup']) && !defined('DEMO_MODE')) - { - $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . time() . XS_BACKUP_EXT; - $f = @fopen($backup_name, 'wb'); - if(!$f) - { - xs_error(str_replace('{FILE}', $backup_name, $lang['xs_error_cannot_create_tmp']) . '

' . $return_url); - } - fwrite($f, $content); - fclose($f); - @chmod($backup_name, 0777); - } - - // delete backup - if(isset($HTTP_GET_VARS['delbackup']) && !defined('DEMO_MODE')) - { - $backup_name = XS_TEMP_DIR . XS_BACKUP_PREFIX . $hash . '.' . intval($HTTP_GET_VARS['delbackup']) . XS_BACKUP_EXT; - @unlink($backup_name); - } - - // show backups - $backups = array(); - $res = opendir(XS_TEMP_DIR); - $match = XS_BACKUP_PREFIX . $hash . '.'; - $match_len = strlen($match); - while(($f = readdir($res)) !== false) - { - if(substr($f, 0, $match_len) === $match) - { - $str = substr($f, $match_len, strlen($f) - $match_len - strlen(XS_BACKUP_EXT)); - if(intval($str)) - { - $backups[] = intval($str); - } - } - } - closedir($res); - sort($backups); - for($i=0; $iassign_block_vars('backup', array( - 'TIME' => create_date($board_config['default_dateformat'], $backups[$i], $board_config['board_timezone']), - 'U_RESTORE' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&restore='.$backups[$i]), - 'U_DELETE' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&delbackup='.$backups[$i]), - 'U_DOWNLOAD' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&downloadbackup='.$backups[$i]), - 'U_VIEW' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file).'&viewbackup='.$backups[$i]), - ) - ); - } - - // show template - $template->set_filenames(array('body' => XS_TPL_PATH . 'edit_file.tpl')); - $template->pparse('body'); - xs_exit(); -} - - -/* -* show file browser -*/ - -// show tree -$arr = array(); -$template->assign_block_vars('tree', array( - 'ITEM' => 'phpBB', - 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='), - 'SEPARATOR' => '', - )); -$back_dir = ''; -for($i=0; $i ($i + 1)) - { - $back_dir = $str; - } - $template->assign_block_vars('tree', array( - 'ITEM' => htmlspecialchars($dirs[$i]), - 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($str)), - 'SEPARATOR' => '/', - )); -} - -// get list of files/directories -$list_files = array(); // non-editable files -$list_files_editable = array(); // editable files -$list_dirs = array(); // directories -$res = @opendir('../' . $current_dir_full); -if(!$res) -{ - xs_error(str_replace('{DIR}', $current_dir_full, $lang['xs_export_no_open_dir']) . '

' . $return_url_root); -} -while(($file = readdir($res)) !== false) -{ - if($file !== '.' && $file !== '..') - { - $filename = '../' . ($current_dir_full ? $current_dir_full . '/' : '') . $file; - if(is_dir($filename)) - { - $list_dirs[] = $file; - } - else - { - $pos = strrpos($file, '.'); - if($pos !== false) - { - $ext = strtolower(substr($file, $pos)); - $ext1 = substr($ext, 1); - if((!$filter_data['ext'] && xs_in_array($ext, $editable)) || $ext1 === $filter_data['ext']) - { - // check filter - if($filter_data['data']) - { - $content = @implode('', @file($filename)); - if(strpos($content, $filter_data['data']) !== false) - { - $list_files_editable[] = $file; - } - } - else - { - $list_files_editable[] = $file; - } - } - else - { - $list_files[] = $file; - } - } - } - } -} -closedir($res); - -$list_dirs_count = count($list_dirs); -$list_files_count = count($list_files) + count($list_files_editable); - -if($current_dir || count($list_dirs)) -{ - $template->assign_block_vars('begin_dirs', array( - 'COUNT' => count($list_dirs), - 'L_COUNT' => str_replace('{COUNT}', count($list_dirs), $lang['xs_fileman_dircount']) - )); -} -else -{ - $template->assign_block_vars('begin_nodirs', array()); -} -if($current_dir) -{ - $template->assign_block_vars('begin_dirs.dir', array( - 'NAME' => '..', - 'FULLNAME' => htmlspecialchars($back_dir ? $back_dir . '/' : ''), - 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($back_dir)), - ) - ); -} - -// show subdirectories -sort($list_dirs); -for($i=0; $iassign_block_vars('begin_dirs.dir', array( - 'NAME' => htmlspecialchars($dir), - 'FULLNAME' => htmlspecialchars($current_dir_root . $dir), - 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($str)), - ) - ); -} - -// show editable files -if(count($list_files_editable)) -{ - $template->assign_block_vars('begin_files', array('COUNT' => count($list_files_editable))); -} -else -{ - $template->assign_block_vars('begin_nofiles', array('COUNT' => count($list_files_editable))); -} -sort($list_files_editable); -// get today start -$today = floor((time() + 3600 * $board_config['board_timezone']) / 86400) * 86400 - (3600 * $board_config['board_timezone']); -for($i=0; $iassign_block_vars('begin_files.file', array( - 'ROW_CLASS' => $row_class, - 'NAME' => htmlspecialchars($file), - 'FULLNAME' => htmlspecialchars($fullfile), - 'SIZE' => @filesize($localfile), - 'TIME' => $filetime, - 'URL' => append_sid('xs_edit.'.$phpEx.$filter_str.'&dir='.urlencode($current_dir).'&edit='.urlencode($file)) - ) - ); - if($t < $today) - { - $template->assign_block_vars('begin_files.file.old', array()); - } - else - { - $template->assign_block_vars('begin_files.file.today', array()); - } -} - -$template->set_filenames(array('body' => XS_TPL_PATH . 'edit.tpl')); -$template->pparse('body'); -xs_exit(); - -?> \ No newline at end of file