WordPress.org

Make WordPress Core

Ticket #9452: 9452.3.patch

File 9452.3.patch, 5.2 KB (added by hakre, 9 years ago)

direct wp_die() vs. later $error / fix of filter

  • wp-admin/plugin-editor.php

     
    8484        }
    8585
    8686        wp_enqueue_script( 'codepress' );
    87         add_action( 'admin_print_footer_scripts', 'codepress_footer_js' );
    88         require_once('admin-header.php');
    89 
    90         update_recently_edited(WP_PLUGIN_DIR . '/' . $file);
    91 
     87        add_action( 'admin_print_footer_scripts', 'codepress_footer_js' );     
     88       
    9289        // List of allowable extensions
    9390        $editable_extensions = array('php', 'txt', 'text', 'js', 'css', 'html', 'htm', 'xml', 'inc', 'include');
    94         $extra_extensions = apply_filters('editable_extensions', null);
    95         if ( is_array($extra_extensions) )
    96                 $editable_extensions = array_merge($editable_extensions, $extra_extensions);
     91        $editable_extensions =(array) apply_filters('editable_extensions', $editable_extensions);
    9792
    9893        if ( ! is_file($real_file) ) {
    99                 $error = __('No such file exists! Double check the name and try again.');
     94                wp_die(sprintf('<p>%s</p>', __('No such file exists! Double check the name and try again.')));
    10095        } else {
    10196                // Get the extension of the file
    10297                if ( preg_match('/\.([^.]+)$/', $real_file, $matches) ) {
    10398                        $ext = strtolower($matches[1]);
    10499                        // If extension is not in the acceptable list, skip it
    105100                        if ( !in_array( $ext, $editable_extensions) )
    106                                 $error = __('Files of this type are not editable.');
     101                                wp_die(sprintf('<p>%s</p>', __('Files of this type are not editable.')));
    107102                }
    108103        }
     104       
     105        update_recently_edited(WP_PLUGIN_DIR . '/' . $file);
     106               
     107        require_once('admin-header.php');       
    109108
    110         if ( ! $error ) {
    111                 $content = file_get_contents( $real_file );
     109        $content = file_get_contents( $real_file );
    112110
    113                 if ( '.php' == substr( $real_file, strrpos( $real_file, '.' ) ) ) {
    114                         $functions = wp_doc_link_parse( $content );
     111        if ( '.php' == substr( $real_file, strrpos( $real_file, '.' ) ) ) {
     112                $functions = wp_doc_link_parse( $content );
    115113
    116                         $docs_select = '<select name="docs-list" id="docs-list">';
    117                         $docs_select .= '<option value="">' . __( 'Function Name...' ) . '</option>';
    118                         foreach ( $functions as $function) {
    119                                 $docs_select .= '<option value="' . attr( $function ) . '">' . htmlspecialchars( $function ) . '()</option>';
    120                         }
    121                         $docs_select .= '</select>';
     114                $docs_select = '<select name="docs-list" id="docs-list">';
     115                $docs_select .= '<option value="">' . __( 'Function Name...' ) . '</option>';
     116                foreach ( $functions as $function) {
     117                        $docs_select .= '<option value="' . attr( $function ) . '">' . htmlspecialchars( $function ) . '()</option>';
    122118                }
    123 
    124                 $content = htmlspecialchars( $content );
    125                 $codepress_lang = codepress_get_lang($real_file);
     119                $docs_select .= '</select>';
    126120        }
    127121
     122        $content = htmlspecialchars( $content );
     123        $codepress_lang = codepress_get_lang($real_file);
     124
    128125        ?>
    129126<?php if (isset($_GET['a'])) : ?>
    130127 <div id="message" class="updated fade"><p><?php _e('File edited successfully.') ?></p></div>
     
    141138<h2><?php echo wp_specialchars( $title ); ?></h2>
    142139<div class="bordertitle">
    143140        <form id="themeselector" action="plugin-editor.php" method="post">
    144                 <strong><label for="theme"><?php _e('Select plugin to edit:'); ?> </label></strong>
     141                <strong><label for="plugin"><?php _e('Select plugin to edit:'); ?> </label></strong>
    145142                <select name="plugin" id="plugin">
    146143<?php
    147144        foreach ( $plugins as $plugin_key => $a_plugin ) {
     
    195192                continue;
    196193        }
    197194?>
    198                 <li<?php echo $file == $plugin_file ? ' class="highlight"' : ''; ?>><a href="plugin-editor.php?file=<?php echo $plugin_file; ?>&plugin=<?php echo $plugin; ?>"><?php echo $plugin_file ?></a></li>
     195                <li<?php echo $file == $plugin_file ? ' class="highlight"' : ''; ?>><a href="plugin-editor.php?file=<?php echo $plugin_file; ?>&amp;plugin=<?php echo $plugin; ?>"><?php echo $plugin_file ?></a></li>
    199196<?php endforeach; ?>
    200197        </ul>
    201198        </div>
     
    208205                <input type="hidden" name="plugin" value="<?php echo attr($plugin) ?>" />
    209206                </div>
    210207                <?php if ( count( $functions ) ) : ?>
    211                 <div id="documentation"><label for="docs-list"><?php _e('Documentation:') ?></label> <?php echo $docs_select ?> <input type="button" class="button" value="<?php _ea( 'Lookup' ) ?> " onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'http://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&locale=<?php echo urlencode( get_locale() ) ?>&version=<?php echo urlencode( $wp_version ) ?>&redirect=true'); }" /></div>
     208                <div id="documentation"><label for="docs-list"><?php _e('Documentation:') ?></label> <?php echo $docs_select ?> <input type="button" class="button" value="<?php _ea( '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>
    212209                <?php endif; ?>
    213210<?php if ( is_writeable($real_file) ) : ?>
    214211        <?php if ( in_array($file, (array) get_option('active_plugins')) ) { ?>
     
    227224<?php endif; ?>
    228225 </form>
    229226<?php
    230         } else {
    231                 echo '<div class="error"><p>' . $error . '</p></div>';
    232227        }
    233228?>
    234229<div class="clear"> &nbsp; </div>