WordPress.org

Make WordPress Core

Ticket #21670: 21670.diff

File 21670.diff, 7.3 KB (added by johnbillion, 5 years 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;