WordPress.org

Make WordPress Core

Ticket #16410: 16410.diff

File 16410.diff, 3.7 KB (added by solarissmoke, 3 years ago)
  • theme.php

     
    592592                if ( !$themes_dir ) 
    593593                        return false; 
    594594 
    595                 while ( ($theme_dir = readdir($themes_dir)) !== false ) { 
    596                         if ( is_dir($theme_root . '/' . $theme_dir) && is_readable($theme_root . '/' . $theme_dir) ) { 
    597                                 if ( $theme_dir[0] == '.' || $theme_dir == 'CVS' ) 
    598                                         continue; 
     595                while ( ( $theme_dir = readdir( $themes_dir ) ) !== false ) { 
     596                        $subdir = "$theme_root/$theme_dir"; 
     597                         
     598                        if ( '.' == $theme_dir[0] || !is_dir( $subdir ) || ! is_readable( $subdir ) ) 
     599                                continue; 
     600                         
     601                        $stylish_dir = @opendir( $subdir ); 
     602                        $found_stylesheet = false; 
    599603 
    600                                 $stylish_dir = @opendir($theme_root . '/' . $theme_dir); 
    601                                 $found_stylesheet = false; 
    602  
    603                                 while ( ($theme_file = readdir($stylish_dir)) !== false ) { 
    604                                         if ( $theme_file == 'style.css' ) { 
    605                                                 $theme_files[$theme_dir] = array( 'theme_file' => $theme_dir . '/' . $theme_file, 'theme_root' => $theme_root ); 
    606                                                 $found_stylesheet = true; 
    607                                                 break; 
    608                                         } 
     604                        while ( ( $theme_file = readdir( $stylish_dir ) ) !== false ) { 
     605                                if ( $theme_file == 'style.css' ) { 
     606                                        $theme_files[$theme_dir] = array( 'theme_file' => $theme_dir . '/' . $theme_file, 'theme_root' => $theme_root ); 
     607                                        $found_stylesheet = true; 
     608                                        break; 
    609609                                } 
    610                                 @closedir($stylish_dir); 
     610                        } 
     611                        @closedir($stylish_dir); 
    611612 
    612                                 if ( !$found_stylesheet ) { // look for themes in that dir 
    613                                         $subdir = "$theme_root/$theme_dir"; 
    614                                         $subdir_name = $theme_dir; 
    615                                         $theme_subdirs = @opendir( $subdir ); 
     613                        if ( !$found_stylesheet ) { // look for themes in that dir 
     614                                $subdir_name = $theme_dir; 
     615                                $theme_subdirs = @opendir( $subdir ); 
     616                                $found_subdir_themes = false; 
     617                                 
     618                                while ( ( $theme_subdir = readdir( $theme_subdirs ) ) !== false ) { 
     619                                        $sub_subdir = "$subdir/$theme_subdir"; 
     620                                         
     621                                        if ( '.' == $theme_subdir[0] || !is_dir( $sub_subdir ) || !is_readable( $sub_subdir ) ) 
     622                                                continue; 
    616623 
    617                                         $found_subdir_themes = false; 
    618                                         while ( ($theme_subdir = readdir($theme_subdirs)) !== false ) { 
    619                                                 if ( is_dir( $subdir . '/' . $theme_subdir) && is_readable($subdir . '/' . $theme_subdir) ) { 
    620                                                         if ( $theme_subdir[0] == '.' || $theme_subdir == 'CVS' ) 
    621                                                                 continue; 
     624                                        $stylish_dir = @opendir( $sub_subdir ); 
     625                                        $found_stylesheet = false; 
    622626 
    623                                                         $stylish_dir = @opendir($subdir . '/' . $theme_subdir); 
    624                                                         $found_stylesheet = false; 
    625  
    626                                                         while ( ($theme_file = readdir($stylish_dir)) !== false ) { 
    627                                                                 if ( $theme_file == 'style.css' ) { 
    628                                                                         $theme_files["$theme_dir/$theme_subdir"] = array( 'theme_file' => $subdir_name . '/' . $theme_subdir . '/' . $theme_file, 'theme_root' => $theme_root ); 
    629                                                                         $found_stylesheet = true; 
    630                                                                         $found_subdir_themes = true; 
    631                                                                         break; 
    632                                                                 } 
    633                                                         } 
    634                                                         @closedir($stylish_dir); 
     627                                        while ( ($theme_file = readdir($stylish_dir)) !== false ) { 
     628                                                if ( $theme_file == 'style.css' ) { 
     629                                                        $theme_files["$theme_dir/$theme_subdir"] = array( 'theme_file' => $subdir_name . '/' . $theme_subdir . '/' . $theme_file, 'theme_root' => $theme_root ); 
     630                                                        $found_stylesheet = true; 
     631                                                        $found_subdir_themes = true; 
     632                                                        break; 
    635633                                                } 
    636634                                        } 
    637                                         @closedir($theme_subdirs); 
    638                                         if ( !$found_subdir_themes ) 
    639                                                 $wp_broken_themes[$theme_dir] = array('Name' => $theme_dir, 'Title' => $theme_dir, 'Description' => __('Stylesheet is missing.')); 
     635                                        @closedir($stylish_dir); 
    640636                                } 
     637                                @closedir($theme_subdirs); 
     638                                if ( !$found_subdir_themes ) 
     639                                        $wp_broken_themes[$theme_dir] = array('Name' => $theme_dir, 'Title' => $theme_dir, 'Description' => __('Stylesheet is missing.')); 
    641640                        } 
    642641                } 
    643642                @closedir( $themes_dir );