X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/b925718b4bf2dd47a8429f844d0a255ca6e35bd1..b22765f41bf0b2021b9beb9120ee0ac91fa89292:/wp-admin/includes/class-bulk-upgrader-skin.php diff --git a/wp-admin/includes/class-bulk-upgrader-skin.php b/wp-admin/includes/class-bulk-upgrader-skin.php new file mode 100644 index 00000000..16f410fd --- /dev/null +++ b/wp-admin/includes/class-bulk-upgrader-skin.php @@ -0,0 +1,175 @@ + '', 'nonce' => '' ); + $args = wp_parse_args($args, $defaults); + + parent::__construct($args); + } + + /** + * @access public + */ + public function add_strings() { + $this->upgrader->strings['skin_upgrade_start'] = __('The update process is starting. This process may take a while on some hosts, so please be patient.'); + /* translators: 1: Title of an update, 2: Error message */ + $this->upgrader->strings['skin_update_failed_error'] = __('An error occurred while updating %1$s: %2$s'); + /* translators: 1: Title of an update */ + $this->upgrader->strings['skin_update_failed'] = __('The update of %1$s failed.'); + /* translators: 1: Title of an update */ + $this->upgrader->strings['skin_update_successful'] = __( '%1$s updated successfully.' ) . ' ' . __( 'Show Details' ) . ''; + $this->upgrader->strings['skin_upgrade_end'] = __('All updates have been completed.'); + } + + /** + * @param string $string + */ + public function feedback($string) { + if ( isset( $this->upgrader->strings[$string] ) ) + $string = $this->upgrader->strings[$string]; + + if ( strpos($string, '%') !== false ) { + $args = func_get_args(); + $args = array_splice($args, 1); + if ( $args ) { + $args = array_map( 'strip_tags', $args ); + $args = array_map( 'esc_html', $args ); + $string = vsprintf($string, $args); + } + } + if ( empty($string) ) + return; + if ( $this->in_loop ) + echo "$string
\n"; + else + echo "

$string

\n"; + } + + /** + * @access public + */ + public function header() { + // Nothing, This will be displayed within a iframe. + } + + /** + * @access public + */ + public function footer() { + // Nothing, This will be displayed within a iframe. + } + + /** + * + * @param string|WP_Error $error + */ + public function error($error) { + if ( is_string($error) && isset( $this->upgrader->strings[$error] ) ) + $this->error = $this->upgrader->strings[$error]; + + if ( is_wp_error($error) ) { + $messages = array(); + foreach ( $error->get_error_messages() as $emessage ) { + if ( $error->get_error_data() && is_string( $error->get_error_data() ) ) + $messages[] = $emessage . ' ' . esc_html( strip_tags( $error->get_error_data() ) ); + else + $messages[] = $emessage; + } + $this->error = implode(', ', $messages); + } + echo ''; + } + + /** + * @access public + */ + public function bulk_header() { + $this->feedback('skin_upgrade_start'); + } + + /** + * @access public + */ + public function bulk_footer() { + $this->feedback('skin_upgrade_end'); + } + + /** + * + * @param string $title + */ + public function before($title = '') { + $this->in_loop = true; + printf( '

' . $this->upgrader->strings['skin_before_update_header'] . '

', $title, $this->upgrader->update_current, $this->upgrader->update_count ); + echo ''; + echo '

'; + $this->flush_output(); + } + + /** + * + * @param string $title + */ + public function after($title = '') { + echo '

'; + if ( $this->error || ! $this->result ) { + if ( $this->error ) { + echo '

' . sprintf($this->upgrader->strings['skin_update_failed_error'], $title, '' . $this->error . '' ) . '

'; + } else { + echo '

' . sprintf($this->upgrader->strings['skin_update_failed'], $title) . '

'; + } + + echo ''; + } + if ( $this->result && ! is_wp_error( $this->result ) ) { + if ( ! $this->error ) + echo '

' . sprintf($this->upgrader->strings['skin_update_successful'], $title, 'jQuery(\'#progress-' . esc_js($this->upgrader->update_current) . '\').toggle();jQuery(\'span\', this).toggle(); return false;') . '

'; + echo ''; + } + + $this->reset(); + $this->flush_output(); + } + + /** + * @access public + */ + public function reset() { + $this->in_loop = false; + $this->error = false; + } + + /** + * @access public + */ + public function flush_output() { + wp_ob_end_flush_all(); + flush(); + } +}