Make WordPress Core

Ticket #35788: 35788.1.patch

File 35788.1.patch, 2.1 KB (added by jukkarau, 8 years ago)

The version attached should work with multiple file selections as well.

  • src/wp-admin/plugin-editor.php

     
    1414        exit();
    1515}
    1616
    17 if ( !current_user_can('edit_plugins') )
     17if ( ! current_user_can('edit_plugins') ) {
    1818        wp_die( __('You do not have sufficient permissions to edit plugins for this site.') );
     19}
    1920
    2021$title = __("Edit Plugins");
    2122$parent_file = 'plugins.php';
     
    4344        $plugin = $plugin[0];
    4445}
    4546
     47$plugin_arr = explode("/", $plugin, 2);
     48$current_plugin = $plugin_arr[0];
     49
    4650$plugin_files = get_plugin_files($plugin);
    4751
    4852if ( empty($file) )
     
    9296                check_admin_referer('edit-plugin-test_' . $file);
    9397
    9498                $error = validate_plugin($file);
    95                 if ( is_wp_error($error) )
     99                if ( is_wp_error($error) ) {
    96100                        wp_die( $error );
     101                }
    97102
    98103                if ( ( ! empty( $_GET['networkwide'] ) && ! is_plugin_active_for_network($file) ) || ! is_plugin_active($file) )
    99104                        activate_plugin($file, "plugin-editor.php?file=$file&phperror=1", ! empty( $_GET['networkwide'] ) ); // we'll override this later if the plugin can be included without fatal error
     
    121126                if ( preg_match('/\.([^.]+)$/', $real_file, $matches) ) {
    122127                        $ext = strtolower($matches[1]);
    123128                        // If extension is not in the acceptable list, skip it
    124                         if ( !in_array( $ext, $editable_extensions) )
     129                        if ( !in_array( $ext, $editable_extensions) ) {
    125130                                wp_die(sprintf('<p>%s</p>', __('Files of this type are not editable.')));
     131                        }
    126132                }
    127133        }
    128134
     
    214220<?php
    215221        foreach ( $plugins as $plugin_key => $a_plugin ) {
    216222                $plugin_name = $a_plugin['Name'];
    217                 if ( $plugin_key == $plugin )
     223                $plugin_name = esc_attr($plugin_name);
     224                $plugin_key = esc_attr($plugin_key);
     225                $plugin_key_arr = explode("/", $plugin_key, 2);
     226                $plugin_slug = $plugin_key_arr[0];
     227
     228                if ( $plugin_slug == $current_plugin ) {
    218229                        $selected = " selected='selected'";
    219                 else
     230                }
     231                else {
    220232                        $selected = '';
    221                 $plugin_name = esc_attr($plugin_name);
    222                 $plugin_key = esc_attr($plugin_key);
     233                }
     234
    223235                echo "\n\t<option value=\"$plugin_key\" $selected>$plugin_name</option>";
    224236        }
    225237?>