X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/138998bbd8f7a1ac38b2f1eacbdf7cd522be4b13..ef91a7f4f3c6468973e192335a27ec0e0faca0b5:/wp-admin/includes/class-wp-plugin-install-list-table.php diff --git a/wp-admin/includes/class-wp-plugin-install-list-table.php b/wp-admin/includes/class-wp-plugin-install-list-table.php index ba8445c1..cd718360 100644 --- a/wp-admin/includes/class-wp-plugin-install-list-table.php +++ b/wp-admin/includes/class-wp-plugin-install-list-table.php @@ -69,7 +69,6 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { * @global int $paged * @global string $type * @global string $term - * @global string $wp_version */ public function prepare_items() { include( ABSPATH . 'wp-admin/includes/plugin-install.php' ); @@ -86,15 +85,15 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { $tabs = array(); if ( 'search' === $tab ) { - $tabs['search'] = __( 'Search Results' ); + $tabs['search'] = __( 'Search Results' ); } - $tabs['featured'] = _x( 'Featured', 'Plugin Installer' ); - $tabs['popular'] = _x( 'Popular', 'Plugin Installer' ); - $tabs['recommended'] = _x( 'Recommended', 'Plugin Installer' ); - $tabs['favorites'] = _x( 'Favorites', 'Plugin Installer' ); - if ( $tab === 'beta' || false !== strpos( $GLOBALS['wp_version'], '-' ) ) { - $tabs['beta'] = _x( 'Beta Testing', 'Plugin Installer' ); + if ( $tab === 'beta' || false !== strpos( get_bloginfo( 'version' ), '-' ) ) { + $tabs['beta'] = _x( 'Beta Testing', 'Plugin Installer' ); } + $tabs['featured'] = _x( 'Featured', 'Plugin Installer' ); + $tabs['popular'] = _x( 'Popular', 'Plugin Installer' ); + $tabs['recommended'] = _x( 'Recommended', 'Plugin Installer' ); + $tabs['favorites'] = _x( 'Favorites', 'Plugin Installer' ); if ( current_user_can( 'upload_plugins' ) ) { // No longer a real tab. Here for filter compatibility. // Gets skipped in get_views(). @@ -104,7 +103,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { $nonmenu_tabs = array( 'plugin-information' ); // Valid actions to perform which do not have a Menu item. /** - * Filter the tabs shown on the Plugin Install screen. + * Filters the tabs shown on the Plugin Install screen. * * @since 2.7.0 * @@ -114,7 +113,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { $tabs = apply_filters( 'install_plugins_tabs', $tabs ); /** - * Filter tabs not associated with a menu item on the Plugin Install screen. + * Filters tabs not associated with a menu item on the Plugin Install screen. * * @since 2.7.0 * @@ -135,7 +134,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { 'active_installs' => true ), // Send the locale and installed plugin slugs to the API so it can provide context-sensitive results. - 'locale' => get_locale(), + 'locale' => get_user_locale(), 'installed_plugins' => $this->get_installed_plugin_slugs(), ); @@ -170,8 +169,13 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { break; case 'favorites': - $user = isset( $_GET['user'] ) ? wp_unslash( $_GET['user'] ) : get_user_option( 'wporg_favorites' ); - update_user_meta( get_current_user_id(), 'wporg_favorites', $user ); + $action = 'save_wporg_username_' . get_current_user_id(); + if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( wp_unslash( $_GET['_wpnonce'] ), $action ) ) { + $user = isset( $_GET['user'] ) ? wp_unslash( $_GET['user'] ) : get_user_option( 'wporg_favorites' ); + update_user_meta( get_current_user_id(), 'wporg_favorites', $user ); + } else { + $user = get_user_option( 'wporg_favorites' ); + } if ( $user ) $args['user'] = $user; else @@ -186,7 +190,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { } /** - * Filter API request arguments for each Plugin Install screen tab. + * Filters API request arguments for each Plugin Install screen tab. * * The dynamic portion of the hook name, `$tab`, refers to the plugin install tabs. * Default tabs include 'featured', 'popular', 'recommended', 'favorites', and 'upload'. @@ -195,7 +199,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { * * @param array|bool $args Plugin Install API arguments. */ - $args = apply_filters( "install_plugins_table_api_args_$tab", $args ); + $args = apply_filters( "install_plugins_table_api_args_{$tab}", $args ); if ( !$args ) return; @@ -280,7 +284,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { ?> - + array( 'href' => array(),'title' => array(), 'target' => array() ), @@ -456,18 +457,45 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { /* translators: 1: Plugin name and version. */ $action_links[] = '' . __( 'Install Now' ) . ''; } - break; + case 'update_available': if ( $status['url'] ) { /* translators: 1: Plugin name and version */ - $action_links[] = '' . __( 'Update Now' ) . ''; + $action_links[] = '' . __( 'Update Now' ) . ''; } - break; + case 'latest_installed': case 'newer_installed': - $action_links[] = '' . _x( 'Installed', 'plugin' ) . ''; + if ( is_plugin_active( $status['file'] ) ) { + $action_links[] = ''; + } elseif ( current_user_can( 'activate_plugins' ) ) { + $button_text = __( 'Activate' ); + /* translators: %s: Plugin name */ + $button_label = _x( 'Activate %s', 'plugin' ); + $activate_url = add_query_arg( array( + '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $status['file'] ), + 'action' => 'activate', + 'plugin' => $status['file'], + ), network_admin_url( 'plugins.php' ) ); + + if ( is_network_admin() ) { + $button_text = __( 'Network Activate' ); + /* translators: %s: Plugin name */ + $button_label = _x( 'Network Activate %s', 'plugin' ); + $activate_url = add_query_arg( array( 'networkwide' => 1 ), $activate_url ); + } + + $action_links[] = sprintf( + '%3$s', + esc_url( $activate_url ), + esc_attr( sprintf( $button_label, $plugin['name'] ) ), + $button_text + ); + } else { + $action_links[] = ''; + } break; } } @@ -476,7 +504,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { '&TB_iframe=true&width=600&height=550' ); /* translators: 1: Plugin name and version. */ - $action_links[] = '' . __( 'More Details' ) . ''; + $action_links[] = '' . __( 'More Details' ) . ''; if ( !empty( $plugin['icons']['svg'] ) ) { $plugin_icon_url = $plugin['icons']['svg']; @@ -489,7 +517,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { } /** - * Filter the install action links for a plugin. + * Filters the install action links for a plugin. * * @since 2.7.0 * @@ -498,14 +526,13 @@ class WP_Plugin_Install_List_Table extends WP_List_Table { */ $action_links = apply_filters( 'plugin_install_action_links', $action_links, $plugin ); - $date_format = __( 'M j, Y @ H:i' ); $last_updated_timestamp = strtotime( $plugin['last_updated'] ); ?>

- + @@ -526,17 +553,17 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
$plugin['rating'], 'type' => 'percent', 'number' => $plugin['num_ratings'] ) ); ?> - () +
- - - +
= 1000000 ) { $active_installs_text = _x( '1+ Million', 'Active plugin installs' ); + } elseif ( 0 == $plugin['active_installs'] ) { + $active_installs_text = _x( 'Less Than 10', 'Active plugin installs' ); } else { $active_installs_text = number_format_i18n( $plugin['active_installs'] ) . '+'; } @@ -545,9 +572,11 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
' ) ) { + $wp_version = get_bloginfo( 'version' ); + + if ( ! empty( $plugin['tested'] ) && version_compare( substr( $wp_version, 0, strlen( $plugin['tested'] ) ), $plugin['tested'], '>' ) ) { echo '' . __( 'Untested with your version of WordPress' ) . ''; - } elseif ( ! empty( $plugin['requires'] ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $plugin['requires'] ) ), $plugin['requires'], '<' ) ) { + } elseif ( ! empty( $plugin['requires'] ) && version_compare( substr( $wp_version, 0, strlen( $plugin['requires'] ) ), $plugin['requires'], '<' ) ) { echo '' . __( 'Incompatible with your version of WordPress' ) . ''; } else { echo '' . __( 'Compatible with your version of WordPress' ) . '';