]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-admin/plugin-editor.php
Wordpress 2.9
[autoinstalls/wordpress.git] / wp-admin / plugin-editor.php
index 8b1602c312ed1e1093333eadfb5e96d94df360de..05aa02a8720f6da99549f2576607c65088fcea08 100644 (file)
@@ -9,6 +9,9 @@
 /** WordPress Administration Bootstrap */
 require_once('admin.php');
 
+if ( !current_user_can('edit_plugins') )
+       wp_die('<p>'.__('You do not have sufficient permissions to edit plugins for this blog.').'</p>');
+
 $title = __("Edit Plugins");
 $parent_file = 'plugins.php';
 
@@ -19,7 +22,7 @@ wp_admin_css( 'theme-editor' );
 $plugins = get_plugins();
 
 if ( isset($_REQUEST['file']) )
-       $plugin = $_REQUEST['file'];
+       $plugin = stripslashes($_REQUEST['file']);
 
 if ( empty($plugin) ) {
        $plugin = array_keys($plugins);
@@ -30,9 +33,12 @@ $plugin_files = get_plugin_files($plugin);
 
 if ( empty($file) )
        $file = $plugin_files[0];
+else
+       $file = stripslashes($file);
 
 $file = validate_file_to_edit($file, $plugin_files);
 $real_file = WP_PLUGIN_DIR . '/' . $file;
+$scrollto = isset($_REQUEST['scrollto']) ? (int) $_REQUEST['scrollto'] : 0;
 
 switch ( $action ) {
 
@@ -40,9 +46,6 @@ case 'update':
 
        check_admin_referer('edit-plugin_' . $file);
 
-       if ( !current_user_can('edit_plugins') )
-               wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this blog.').'</p>');
-
        $newcontent = stripslashes($_POST['newcontent']);
        if ( is_writeable($real_file) ) {
                $f = fopen($real_file, 'w+');
@@ -53,12 +56,12 @@ case 'update':
                if ( is_plugin_active($file) || isset($_POST['phperror']) ) {
                        if ( is_plugin_active($file) )
                                deactivate_plugins($file, true);
-                       wp_redirect(add_query_arg('_wpnonce', wp_create_nonce('edit-plugin-test_' . $file), "plugin-editor.php?file=$file&liveupdate=1"));
+                       wp_redirect(add_query_arg('_wpnonce', wp_create_nonce('edit-plugin-test_' . $file), "plugin-editor.php?file=$file&liveupdate=1&scrollto=$scrollto"));
                        exit;
                }
-               wp_redirect("plugin-editor.php?file=$file&a=te");
+               wp_redirect("plugin-editor.php?file=$file&a=te&scrollto=$scrollto");
        } else {
-               wp_redirect("plugin-editor.php?file=$file");
+               wp_redirect("plugin-editor.php?file=$file&scrollto=$scrollto");
        }
        exit;
 
@@ -66,9 +69,6 @@ break;
 
 default:
 
-       if ( !current_user_can('edit_plugins') )
-               wp_die('<p>'.__('You do not have sufficient permissions to edit plugins for this blog.').'</p>');
-
        if ( isset($_GET['liveupdate']) ) {
                check_admin_referer('edit-plugin-test_' . $file);
 
@@ -79,7 +79,7 @@ default:
                if ( ! is_plugin_active($file) )
                        activate_plugin($file, "plugin-editor.php?file=$file&phperror=1"); // we'll override this later if the plugin can be included without fatal error
 
-               wp_redirect("plugin-editor.php?file=$file&a=te");
+               wp_redirect("plugin-editor.php?file=$file&a=te&scrollto=$scrollto");
                exit;
        }
 
@@ -202,6 +202,7 @@ foreach ( $plugin_files as $plugin_file ) :
                <input type="hidden" name="action" value="update" />
                <input type="hidden" name="file" value="<?php echo esc_attr($file) ?>" />
                <input type="hidden" name="plugin" value="<?php echo esc_attr($plugin) ?>" />
+               <input type="hidden" name="scrollto" id="scrollto" value="<?php echo $scrollto; ?>" />
                </div>
                <?php if ( !empty( $docs_select ) ) : ?>
                <div id="documentation"><label for="docs-list"><?php _e('Documentation:') ?></label> <?php echo $docs_select ?> <input type="button" class="button" value="<?php esc_attr_e( 'Lookup' ) ?> " onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'http://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&amp;locale=<?php echo urlencode( get_locale() ) ?>&amp;version=<?php echo urlencode( $wp_version ) ?>&amp;redirect=true'); }" /></div>
@@ -224,6 +225,14 @@ foreach ( $plugin_files as $plugin_file ) :
 </form>
 <br class="clear" />
 </div>
+<script type="text/javascript">
+/* <![CDATA[ */
+jQuery(document).ready(function($){
+       $('#template').submit(function(){ $('#scrollto').val( $('#newcontent').scrollTop() ); });
+       $('#newcontent').scrollTop( $('#scrollto').val() );
+});
+/* ]]> */
+</script>
 <?php
        break;
 }