'', '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.' ); $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 ''; // This progress messages div gets moved via JavaScript when clicking on "Show details.". 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 ) . ' ' . '

'; } 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(); } }