X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/8f374b7233bc2815ccc387e448d208c5434eb961..baca9ce86a38dc54c4574890ee2d352fd81f78b2:/wp-admin/includes/class-wp-upgrader.php diff --git a/wp-admin/includes/class-wp-upgrader.php b/wp-admin/includes/class-wp-upgrader.php index c70ef66b..63155927 100644 --- a/wp-admin/includes/class-wp-upgrader.php +++ b/wp-admin/includes/class-wp-upgrader.php @@ -98,7 +98,7 @@ class WP_Upgrader { break; default: if ( ! $wp_filesystem->find_folder($dir) ) - return new WP_Error('fs_no_folder', sprintf($this->strings['fs_no_folder'], $dir)); + return new WP_Error( 'fs_no_folder', sprintf( $this->strings['fs_no_folder'], esc_html( basename( $dir ) ) ) ); break; } } @@ -496,11 +496,11 @@ class Plugin_Upgrader extends WP_Upgrader { $this->skin->plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin, false, true); if ( !isset( $current->response[ $plugin ] ) ) { - $this->skin->set_result(false); + $this->skin->set_result(true); $this->skin->before(); - $this->skin->error('up_to_date'); + $this->skin->feedback('up_to_date'); $this->skin->after(); - $results[$plugin] = false; + $results[$plugin] = true; continue; } @@ -763,10 +763,7 @@ class Theme_Upgrader extends WP_Upgrader { return $this->result; // Force refresh of theme update information - delete_site_transient('update_themes'); - search_theme_directories( true ); - foreach ( wp_get_themes() as $theme ) - $theme->cache_delete(); + wp_clean_themes_cache(); return true; } @@ -812,10 +809,7 @@ class Theme_Upgrader extends WP_Upgrader { return $this->result; // Force refresh of theme update information - delete_site_transient('update_themes'); - search_theme_directories( true ); - foreach ( wp_get_themes() as $theme ) - $theme->cache_delete(); + wp_clean_themes_cache(); return true; } @@ -857,17 +851,17 @@ class Theme_Upgrader extends WP_Upgrader { foreach ( $themes as $theme ) { $this->update_current++; + $this->skin->theme_info = $this->theme_info($theme); + if ( !isset( $current->response[ $theme ] ) ) { - $this->skin->set_result(false); + $this->skin->set_result(true); $this->skin->before(); - $this->skin->error('up_to_date'); + $this->skin->feedback('up_to_date'); $this->skin->after(); - $results[$theme] = false; + $results[$theme] = true; continue; } - $this->skin->theme_info = $this->theme_info($theme); - // Get the URL to the zip file $r = $current->response[ $theme ]; @@ -902,10 +896,7 @@ class Theme_Upgrader extends WP_Upgrader { remove_filter('upgrader_clear_destination', array(&$this, 'delete_old_theme'), 10, 4); // Force refresh of theme update information - delete_site_transient('update_themes'); - search_theme_directories( true ); - foreach ( wp_get_themes() as $theme ) - $theme->cache_delete(); + wp_clean_themes_cache(); return $results; } @@ -962,13 +953,11 @@ class Theme_Upgrader extends WP_Upgrader { if ( $theme != get_stylesheet() ) // If not current return $return; - // Ensure stylesheet name hasnt changed after the upgrade: - // @TODO: Note, This doesn't handle the Template changing, or the Template name changing. + // Ensure stylesheet name hasn't changed after the upgrade: if ( $theme == get_stylesheet() && $theme != $this->result['destination_name'] ) { - $theme_info = $this->theme_info(); + wp_clean_themes_cache(); $stylesheet = $this->result['destination_name']; - $template = $theme_info->get_template(); - switch_theme($template, $stylesheet, true); + switch_theme( $stylesheet ); } //Time to remove maintenance mode @@ -1144,7 +1133,7 @@ class WP_Upgrader_Skin { } elseif ( is_wp_error($errors) && $errors->get_error_code() ) { foreach ( $errors->get_error_messages() as $message ) { if ( $errors->get_error_data() ) - $this->feedback($message . ' ' . $errors->get_error_data() ); + $this->feedback($message . ' ' . esc_html( $errors->get_error_data() ) ); else $this->feedback($message); } @@ -1158,8 +1147,11 @@ class WP_Upgrader_Skin { if ( strpos($string, '%') !== false ) { $args = func_get_args(); $args = array_splice($args, 1); - if ( !empty($args) ) + if ( $args ) { + $args = array_map( 'strip_tags', $args ); + $args = array_map( 'esc_html', $args ); $string = vsprintf($string, $args); + } } if ( empty($string) ) return; @@ -1199,16 +1191,14 @@ class Plugin_Upgrader_Skin extends WP_Upgrader_Skin { function after() { $this->plugin = $this->upgrader->plugin_info(); if ( !empty($this->plugin) && !is_wp_error($this->result) && $this->plugin_active ){ - echo ''; + echo ''; } $update_actions = array( - 'activate_plugin' => '' . __('Activate Plugin') . '', + 'activate_plugin' => '' . __('Activate Plugin') . '', 'plugins_page' => '' . __('Return to Plugins page') . '' ); - if ( $this->plugin_active ) - unset( $update_actions['activate_plugin'] ); - if ( ! $this->result || is_wp_error($this->result) ) + if ( $this->plugin_active || ! $this->result || is_wp_error( $this->result ) || ! current_user_can( 'activate_plugins' ) ) unset( $update_actions['activate_plugin'] ); $update_actions = apply_filters('update_plugin_complete_actions', $update_actions, $this->plugin); @@ -1257,8 +1247,11 @@ class Bulk_Upgrader_Skin extends WP_Upgrader_Skin { if ( strpos($string, '%') !== false ) { $args = func_get_args(); $args = array_splice($args, 1); - if ( !empty($args) ) + if ( $args ) { + $args = array_map( 'strip_tags', $args ); + $args = array_map( 'esc_html', $args ); $string = vsprintf($string, $args); + } } if ( empty($string) ) return; @@ -1282,7 +1275,7 @@ class Bulk_Upgrader_Skin extends WP_Upgrader_Skin { if ( is_wp_error($error) ) { foreach ( $error->get_error_messages() as $emessage ) { if ( $error->get_error_data() ) - $messages[] = $emessage . ' ' . $error->get_error_data(); + $messages[] = $emessage . ' ' . esc_html( $error->get_error_data() ); else $messages[] = $emessage; } @@ -1301,8 +1294,8 @@ class Bulk_Upgrader_Skin extends WP_Upgrader_Skin { function before($title = '') { $this->in_loop = true; - printf( '