WordPress.org

Make WordPress Core

Ticket #21670: 21670.diff

File 21670.diff, 7.3 KB (added by johnbillion, 8 months ago)
  • wp-admin/includes/dashboard.php

    diff --git wp-admin/includes/dashboard.php wp-admin/includes/dashboard.php
    index 657402f..1fd35be 100644
    function wp_dashboard_right_now() { 
    366366 
    367367        if ( $theme->errors() ) { 
    368368                if ( ! is_multisite() || is_super_admin() ) 
    369                         echo '<span class="error-message">' . __('ERROR: The themes directory is either empty or doesn&#8217;t exist. Please check your installation.') . '</span>'; 
     369                        echo '<span class="error-message">' . sprintf( __( 'ERROR: %s' ), $theme->errors()->get_error_message() ) . '</span>'; 
    370370        } elseif ( ! empty($wp_registered_sidebars) ) { 
    371371                $sidebars_widgets = wp_get_sidebars_widgets(); 
    372372                $num_widgets = 0; 
  • wp-admin/themes.php

    diff --git wp-admin/themes.php wp-admin/themes.php
    index 14ed887..1cb769a 100644
    $customize_title = sprintf( __( 'Customize &#8220;%s&#8221;' ), $ct->display('Na 
    139139                <?php echo $ct->display('Name'); ?> 
    140140        </h4> 
    141141 
    142         <div> 
    143                 <ul class="theme-info"> 
    144                         <li><?php printf( __('By %s'), $ct->display('Author') ); ?></li> 
    145                         <li><?php printf( __('Version %s'), $ct->display('Version') ); ?></li> 
    146                 </ul> 
    147                 <p class="theme-description"><?php echo $ct->display('Description'); ?></p> 
    148                 <?php if ( $ct->parent() ) { 
    149                         printf( ' <p class="howto">' . __( 'This <a href="%1$s">child theme</a> requires its parent theme, %2$s.' ) . '</p>', 
    150                                 __( 'http://codex.wordpress.org/Child_Themes' ), 
    151                                 $ct->parent()->display( 'Name' ) ); 
    152                 } ?> 
    153                 <?php theme_update_available( $ct ); ?> 
    154         </div> 
     142        <?php if ( $ct->errors() ) : ?> 
     143 
     144                <?php 
     145                if ( ! is_multisite() || is_super_admin() ) 
     146                        echo '<p class="error-message">' . sprintf( __( 'ERROR: %s' ), $ct->errors()->get_error_message() ) . '</p>'; 
     147                ?> 
    155148 
    156         <?php 
    157         // Pretend you didn't see this. 
    158         $options = array(); 
    159         if ( is_array( $submenu ) && isset( $submenu['themes.php'] ) ) { 
    160                 foreach ( (array) $submenu['themes.php'] as $item) { 
    161                         $class = ''; 
    162                         if ( 'themes.php' == $item[2] || 'theme-editor.php' == $item[2] || 'customize.php' == $item[2] ) 
    163                                 continue; 
    164                         // 0 = name, 1 = capability, 2 = file 
    165                         if ( ( strcmp($self, $item[2]) == 0 && empty($parent_file)) || ($parent_file && ($item[2] == $parent_file)) ) 
    166                                 $class = ' class="current"'; 
    167                         if ( !empty($submenu[$item[2]]) ) { 
    168                                 $submenu[$item[2]] = array_values($submenu[$item[2]]); // Re-index. 
    169                                 $menu_hook = get_plugin_page_hook($submenu[$item[2]][0][2], $item[2]); 
    170                                 if ( file_exists(WP_PLUGIN_DIR . "/{$submenu[$item[2]][0][2]}") || !empty($menu_hook)) 
    171                                         $options[] = "<a href='admin.php?page={$submenu[$item[2]][0][2]}'$class>{$item[0]}</a>"; 
    172                                 else 
    173                                         $options[] = "<a href='{$submenu[$item[2]][0][2]}'$class>{$item[0]}</a>"; 
    174                         } else if ( current_user_can($item[1]) ) { 
    175                                 $menu_file = $item[2]; 
    176                                 if ( false !== ( $pos = strpos( $menu_file, '?' ) ) ) 
    177                                         $menu_file = substr( $menu_file, 0, $pos ); 
    178                                 if ( file_exists( ABSPATH . "wp-admin/$menu_file" ) ) { 
    179                                         $options[] = "<a href='{$item[2]}'$class>{$item[0]}</a>"; 
    180                                 } else { 
    181                                         $options[] = "<a href='themes.php?page={$item[2]}'$class>{$item[0]}</a>"; 
     149        <?php else : ?> 
     150 
     151                <div> 
     152                        <ul class="theme-info"> 
     153                                <li><?php printf( __('By %s'), $ct->display('Author') ); ?></li> 
     154                                <li><?php printf( __('Version %s'), $ct->display('Version') ); ?></li> 
     155                        </ul> 
     156                        <p class="theme-description"><?php echo $ct->display('Description'); ?></p> 
     157                        <?php if ( $ct->parent() ) { 
     158                                printf( ' <p class="howto">' . __( 'This <a href="%1$s">child theme</a> requires its parent theme, %2$s.' ) . '</p>', 
     159                                        __( 'http://codex.wordpress.org/Child_Themes' ), 
     160                                        $ct->parent()->display( 'Name' ) ); 
     161                        } ?> 
     162                        <?php theme_update_available( $ct ); ?> 
     163                </div> 
     164 
     165                <?php 
     166                // Pretend you didn't see this. 
     167                $options = array(); 
     168                if ( is_array( $submenu ) && isset( $submenu['themes.php'] ) ) { 
     169                        foreach ( (array) $submenu['themes.php'] as $item) { 
     170                                $class = ''; 
     171                                if ( 'themes.php' == $item[2] || 'theme-editor.php' == $item[2] || 'customize.php' == $item[2] ) 
     172                                        continue; 
     173                                // 0 = name, 1 = capability, 2 = file 
     174                                if ( ( strcmp($self, $item[2]) == 0 && empty($parent_file)) || ($parent_file && ($item[2] == $parent_file)) ) 
     175                                        $class = ' class="current"'; 
     176                                if ( !empty($submenu[$item[2]]) ) { 
     177                                        $submenu[$item[2]] = array_values($submenu[$item[2]]); // Re-index. 
     178                                        $menu_hook = get_plugin_page_hook($submenu[$item[2]][0][2], $item[2]); 
     179                                        if ( file_exists(WP_PLUGIN_DIR . "/{$submenu[$item[2]][0][2]}") || !empty($menu_hook)) 
     180                                                $options[] = "<a href='admin.php?page={$submenu[$item[2]][0][2]}'$class>{$item[0]}</a>"; 
     181                                        else 
     182                                                $options[] = "<a href='{$submenu[$item[2]][0][2]}'$class>{$item[0]}</a>"; 
     183                                } else if ( current_user_can($item[1]) ) { 
     184                                        $menu_file = $item[2]; 
     185                                        if ( false !== ( $pos = strpos( $menu_file, '?' ) ) ) 
     186                                                $menu_file = substr( $menu_file, 0, $pos ); 
     187                                        if ( file_exists( ABSPATH . "wp-admin/$menu_file" ) ) { 
     188                                                $options[] = "<a href='{$item[2]}'$class>{$item[0]}</a>"; 
     189                                        } else { 
     190                                                $options[] = "<a href='themes.php?page={$item[2]}'$class>{$item[0]}</a>"; 
     191                                        } 
    182192                                } 
    183193                        } 
    184194                } 
    185         } 
    186195 
    187         if ( $options || current_user_can( 'edit_theme_options' ) ) : 
    188         ?> 
    189         <div class="theme-options"> 
    190                 <?php if ( current_user_can( 'edit_theme_options' ) ) : ?> 
    191                 <a id="customize-current-theme-link" href="<?php echo wp_customize_url(); ?>" class="load-customize hide-if-no-customize" title="<?php echo esc_attr( $customize_title ); ?>"><?php _e( 'Customize' ); ?></a> 
    192                 <?php 
    193                 endif; // edit_theme_options 
    194                 if ( $options ) : 
     196                if ( $options || current_user_can( 'edit_theme_options' ) ) : 
    195197                ?> 
    196                 <span><?php _e( 'Options:' )?></span> 
    197                 <ul> 
    198                         <?php foreach ( $options as $option ) : ?> 
    199                                 <li><?php echo $option; ?></li> 
    200                         <?php endforeach; ?> 
    201                 </ul> 
     198                <div class="theme-options"> 
     199                        <?php if ( current_user_can( 'edit_theme_options' ) ) : ?> 
     200                        <a id="customize-current-theme-link" href="<?php echo wp_customize_url(); ?>" class="load-customize hide-if-no-customize" title="<?php echo esc_attr( $customize_title ); ?>"><?php _e( 'Customize' ); ?></a> 
     201                        <?php 
     202                        endif; // edit_theme_options 
     203                        if ( $options ) : 
     204                        ?> 
     205                        <span><?php _e( 'Options:' )?></span> 
     206                        <ul> 
     207                                <?php foreach ( $options as $option ) : ?> 
     208                                        <li><?php echo $option; ?></li> 
     209                                <?php endforeach; ?> 
     210                        </ul> 
     211                        <?php 
     212                        endif; // options 
     213                        ?> 
     214                </div> 
    202215                <?php 
    203                 endif; // options 
     216                endif; // options || edit_theme_options 
    204217                ?> 
    205         </div> 
    206         <?php 
    207         endif; // options || edit_theme_options 
    208         ?> 
     218 
     219        <?php endif; // theme errors ?> 
    209220 
    210221</div> 
    211222 
  • wp-includes/class-wp-theme.php

    diff --git wp-includes/class-wp-theme.php wp-includes/class-wp-theme.php
    index 0d47f02..3b0ffff 100644
    final class WP_Theme implements ArrayAccess { 
    206206                } elseif ( ! file_exists( $this->theme_root . '/' . $theme_file ) ) { 
    207207                        $this->headers['Name'] = $this->stylesheet; 
    208208                        if ( ! file_exists( $this->theme_root . '/' . $this->stylesheet ) ) 
    209                                 $this->errors = new WP_Error( 'theme_not_found', __( 'The theme directory does not exist.' ) ); 
     209                                $this->errors = new WP_Error( 'theme_not_found', sprintf( __( "The theme directory '%s' does not exist." ), $this->stylesheet ) ); 
    210210                        else 
    211211                                $this->errors = new WP_Error( 'theme_no_stylesheet', __( 'Stylesheet is missing.' ) ); 
    212212                        $this->template = $this->stylesheet;