WordPress.org

Make WordPress Core

Ticket #6531: 6531.diff

File 6531.diff, 3.6 KB (added by MikeHansenMe, 4 years ago)

Show path for plugins and themes

  • wp-admin/includes/plugin.php

     
    182182 * @param string $plugin Plugin ID 
    183183 * @return array List of files relative to the plugin root. 
    184184 */ 
    185 function get_plugin_files($plugin) { 
     185function get_plugin_files( $plugin ) { 
    186186        $plugin_file = WP_PLUGIN_DIR . '/' . $plugin; 
    187         $dir = dirname($plugin_file); 
    188         $plugin_files = array($plugin); 
    189         if ( is_dir($dir) && $dir != WP_PLUGIN_DIR ) { 
     187        $dir =  WP_PLUGIN_DIR . '/' . current( explode( '/', $plugin, 2 ) ); 
     188        $plugin_files = array( $plugin ); 
     189        if ( is_dir( $dir ) && $dir != WP_PLUGIN_DIR ) { 
    190190                $plugins_dir = @ opendir( $dir ); 
    191191                if ( $plugins_dir ) { 
    192                         while (($file = readdir( $plugins_dir ) ) !== false ) { 
    193                                 if ( substr($file, 0, 1) == '.' ) 
     192                        while ( ( $file = readdir( $plugins_dir ) ) !== false ) { 
     193                                if ( substr( $file, 0, 1 ) == '.' ) 
    194194                                        continue; 
    195195                                if ( is_dir( $dir . '/' . $file ) ) { 
    196                                         $plugins_subdir = @ opendir( $dir . '/' . $file ); 
    197                                         if ( $plugins_subdir ) { 
    198                                                 while (($subfile = readdir( $plugins_subdir ) ) !== false ) { 
    199                                                         if ( substr($subfile, 0, 1) == '.' ) 
    200                                                                 continue; 
    201                                                         $plugin_files[] = plugin_basename("$dir/$file/$subfile"); 
    202                                                 } 
    203                                                 @closedir( $plugins_subdir ); 
    204                                         } 
     196                                        $subfiles = get_plugin_sub_files( $dir . '/' . $file ); 
     197                                        $plugin_files = array_merge( $plugin_files, $subfiles ); 
    205198                                } else { 
    206                                         if ( plugin_basename("$dir/$file") != $plugin ) 
    207                                                 $plugin_files[] = plugin_basename("$dir/$file"); 
     199                                        if ( plugin_basename( "$dir/$file" ) != $plugin ) 
     200                                                $plugin_files[] = plugin_basename( "$dir/$file" ); 
    208201                                } 
    209202                        } 
    210                         @closedir( $plugins_dir ); 
     203                        @ closedir( $plugins_dir ); 
    211204                } 
    212205        } 
     206        return $plugin_files; 
     207} 
    213208 
     209function get_plugin_sub_files( $subdir ) { 
     210        $plugins_subdir = @ opendir( $subdir ); 
     211        if ( $plugins_subdir ) { 
     212                $plugin_files = array(); 
     213                while ( ( $subfile = readdir( $plugins_subdir ) ) !== false ) { 
     214                        if ( substr( $subfile, 0, 1 ) == '.' ) 
     215                                continue; 
     216                        if ( is_dir( $subdir  . '/' . $subfile ) ) { 
     217                                $subfiles = get_plugin_sub_files( $subdir . '/' . $subfile ); 
     218                                $plugin_files = array_merge( $plugin_files, $subfiles ); 
     219                        } else { 
     220                                $plugin_files[] = plugin_basename( "$subdir/$subfile" );         
     221                        } 
     222                } 
     223                @ closedir( $plugins_subdir ); 
     224        } 
    214225        return $plugin_files; 
    215226} 
    216227 
  • wp-admin/theme-editor.php

     
    176176        endif; 
    177177 
    178178        foreach ( $allowed_files as $filename => $absolute_filename ) : 
    179                 if ( 'style.css' == $filename ) 
     179                if ( 'style.css' == $filename ) { 
    180180                        echo "\t</ul>\n\t<h3>" . _x( 'Styles', 'Theme stylesheets in theme editor' ) . "</h3>\n\t<ul>\n"; 
     181                } 
    181182 
     183                $relative_file = explode( $theme->offsetGet( 'Template' ) . '/', $absolute_filename ); 
     184                $relative_file = $relative_file[1]; 
     185 
    182186                $file_description = get_file_description( $absolute_filename ); 
    183                 if ( $file_description != basename( $filename ) ) 
    184                         $file_description .= '<br /><span class="nonessential">(' . $filename . ')</span>'; 
    185  
    186                 if ( $absolute_filename == $file ) 
     187                 
     188                $file_description .= '<br /><span class="nonessential">(' . $relative_file . ')</span>'; 
     189                 
     190                if ( $absolute_filename == $file ) { 
    187191                        $file_description = '<span class="highlight">' . $file_description . '</span>'; 
     192                } 
    188193?> 
    189194                <li><a href="theme-editor.php?file=<?php echo urlencode( $filename ) ?>&amp;theme=<?php echo urlencode( $stylesheet ) ?>"><?php echo $file_description; ?></a></li> 
    190195<?php