From 7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8 Mon Sep 17 00:00:00 2001 From: Charles Date: Tue, 7 Jan 2020 13:06:14 +0100 Subject: Added wordpress --- .../wp-admin/includes/class-bulk-upgrader-skin.php | 177 +++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 srcs/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php (limited to 'srcs/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php') diff --git a/srcs/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php b/srcs/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php new file mode 100644 index 0000000..c5cbcd4 --- /dev/null +++ b/srcs/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php @@ -0,0 +1,177 @@ + '', + 'nonce' => '', + ); + $args = wp_parse_args( $args, $defaults ); + + parent::__construct( $args ); + } + + /** + */ + 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: %s: Title of an update. */ + $this->upgrader->strings['skin_update_failed'] = __( 'The update of %s failed.' ); + /* translators: %s: Title of an update. */ + $this->upgrader->strings['skin_update_successful'] = __( '%s updated successfully.' ); + $this->upgrader->strings['skin_upgrade_end'] = __( 'All updates have been completed.' ); + } + + /** + * @param string $string + * @param mixed ...$args Optional text replacements. + */ + public function feedback( $string, ...$args ) { + if ( isset( $this->upgrader->strings[ $string ] ) ) { + $string = $this->upgrader->strings[ $string ]; + } + + if ( strpos( $string, '%' ) !== false ) { + 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"; + } + } + + /** + */ + public function header() { + // Nothing, This will be displayed within a iframe. + } + + /** + */ + 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 ''; + } + + /** + */ + public function bulk_header() { + $this->feedback( 'skin_upgrade_start' ); + } + + /** + */ + 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(); + } + + /** + */ + public function reset() { + $this->in_loop = false; + $this->error = false; + } + + /** + */ + public function flush_output() { + wp_ob_end_flush_all(); + flush(); + } +} -- cgit