X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/98a4d31e52bd56c908617df281730bd4ba58d110..refs/tags/wordpress-2.9:/wp-admin/theme-editor.php diff --git a/wp-admin/theme-editor.php b/wp-admin/theme-editor.php index c7343a7a..c85fa0ab 100644 --- a/wp-admin/theme-editor.php +++ b/wp-admin/theme-editor.php @@ -9,10 +9,13 @@ /** WordPress Administration Bootstrap */ require_once('admin.php'); +if ( !current_user_can('edit_themes') ) + wp_die('

'.__('You do not have sufficient permissions to edit templates for this blog.').'

'); + $title = __("Edit Themes"); $parent_file = 'themes.php'; -wp_reset_vars(array('action', 'redirect', 'profile', 'error', 'warning', 'a', 'file', 'theme')); +wp_reset_vars(array('action', 'redirect', 'profile', 'error', 'warning', 'a', 'file', 'theme', 'dir')); wp_admin_css( 'theme-editor' ); @@ -31,11 +34,17 @@ $allowed_files = array_merge($themes[$theme]['Stylesheet Files'], $themes[$theme if (empty($file)) { $file = $allowed_files[0]; +} else { + $file = stripslashes($file); + if ( 'theme' == $dir ) { + $file = dirname(dirname($themes[$theme]['Template Dir'])) . $file ; + } else if ( 'style' == $dir) { + $file = dirname(dirname($themes[$theme]['Stylesheet Dir'])) . $file ; + } } -$file = validate_file_to_edit($file, $allowed_files); -$real_file = get_real_file_to_edit($file); - +validate_file_to_edit($file, $allowed_files); +$scrollto = isset($_REQUEST['scrollto']) ? (int) $_REQUEST['scrollto'] : 0; $file_show = basename( $file ); switch($action) { @@ -44,23 +53,20 @@ case 'update': check_admin_referer('edit-theme_' . $file . $theme); - if ( !current_user_can('edit_themes') ) - wp_die('

'.__('You do not have sufficient permissions to edit templates for this blog.').'

'); - $newcontent = stripslashes($_POST['newcontent']); $theme = urlencode($theme); - if (is_writeable($real_file)) { + if (is_writeable($file)) { //is_writable() not always reliable, check return value. see comments @ http://uk.php.net/is_writable - $f = fopen($real_file, 'w+'); + $f = fopen($file, 'w+'); if ($f !== FALSE) { fwrite($f, $newcontent); fclose($f); - $location = "theme-editor.php?file=$file&theme=$theme&a=te"; + $location = "theme-editor.php?file=$file&theme=$theme&a=te&scrollto=$scrollto"; } else { - $location = "theme-editor.php?file=$file&theme=$theme"; + $location = "theme-editor.php?file=$file&theme=$theme&scrollto=$scrollto"; } } else { - $location = "theme-editor.php?file=$file&theme=$theme"; + $location = "theme-editor.php?file=$file&theme=$theme&scrollto=$scrollto"; } $location = wp_kses_no_null($location); @@ -73,21 +79,18 @@ break; default: - if ( !current_user_can('edit_themes') ) - wp_die('

'.__('You do not have sufficient permissions to edit themes for this blog.').'

'); - require_once('admin-header.php'); update_recently_edited($file); - if ( !is_file($real_file) ) + if ( !is_file($file) ) $error = 1; - if ( !$error && filesize($real_file) > 0 ) { - $f = fopen($real_file, 'r'); - $content = fread($f, filesize($real_file)); + if ( !$error && filesize($file) > 0 ) { + $f = fopen($file, 'r'); + $content = fread($f, filesize($file)); - if ( '.php' == substr( $real_file, strrpos( $real_file, '.' ) ) ) { + if ( '.php' == substr( $file, strrpos( $file, '.' ) ) ) { $functions = wp_doc_link_parse( $content ); $docs_select = ' +
@@ -208,7 +212,7 @@ if ($allowed_files) :
- +

"; @@ -218,7 +222,7 @@ if ($allowed_files) :

the Codex for more information.'); ?>

- +

' . __('Oops, no such file exists! Double check the name and try again, merci.') . '

'; @@ -226,6 +230,14 @@ if ($allowed_files) : ?>
+