X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/874d2a2f468a0d1e69aab49b1fe2d9d79d3e1142..9441756a895fb4fdc4bcf20e0d228cef622663ca:/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 50a4a97a..ba8445c1 100644
--- a/wp-admin/includes/class-wp-plugin-install-list-table.php
+++ b/wp-admin/includes/class-wp-plugin-install-list-table.php
@@ -1,18 +1,32 @@
$paged,
'per_page' => $per_page,
- 'fields' => array( 'last_updated' => true, 'downloaded' => true, 'icons' => true ),
+ 'fields' => array(
+ 'last_updated' => true,
+ 'icons' => true,
+ 'active_installs' => true
+ ),
// Send the locale and installed plugin slugs to the API so it can provide context-sensitive results.
'locale' => get_locale(),
'installed_plugins' => $this->get_installed_plugin_slugs(),
@@ -134,6 +165,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
case 'popular':
case 'new':
case 'beta':
+ case 'recommended':
$args['browse'] = $tab;
break;
@@ -156,9 +188,8 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
/**
* Filter 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 are 'dashboard', 'search', 'upload', 'featured', 'popular', 'new',
- * and 'favorites'.
+ * The dynamic portion of the hook name, `$tab`, refers to the plugin install tabs.
+ * Default tabs include 'featured', 'popular', 'recommended', 'favorites', and 'upload'.
*
* @since 3.7.0
*
@@ -192,6 +223,9 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
}
}
+ /**
+ * @access public
+ */
public function no_items() {
if ( isset( $this->error ) ) {
$message = $this->error->get_error_message() . '
' . __( 'Try again' ) . '
';
@@ -201,12 +235,19 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
echo '' . $message . '
';
}
+ /**
+ *
+ * @global array $tabs
+ * @global string $tab
+ *
+ * @return array
+ */
protected function get_views() {
global $tabs, $tab;
$display_tabs = array();
foreach ( (array) $tabs as $action => $text ) {
- $class = ( $action == $tab ) ? ' current' : '';
+ $class = ( $action === $tab ) ? ' current' : '';
$href = self_admin_url('plugin-install.php?tab=' . $action);
$display_tabs['plugin-install-'.$action] = "$text";
}
@@ -225,6 +266,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
/** This filter is documented in wp-admin/inclues/class-wp-list-table.php */
$views = apply_filters( "views_{$this->screen->id}", $views );
+ $this->screen->render_screen_reader_content( 'heading_views' );
?>
@@ -259,7 +301,9 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
?>
-
+screen->render_screen_reader_content( 'heading_list' );
+?>
>
display_rows_or_placeholder(); ?>
@@ -268,12 +312,17 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
$this->display_tablenav( 'bottom' );
}
+ /**
+ * @global string $tab
+ *
+ * @param string $which
+ */
protected function display_tablenav( $which ) {
if ( $GLOBALS['tab'] === 'featured' ) {
return;
}
- if ( 'top' == $which ) {
+ if ( 'top' === $which ) {
wp_referer_field();
?>
@@ -298,14 +347,25 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
}
}
+ /**
+ * @return array
+ */
protected function get_table_classes() {
return array( 'widefat', $this->_args['plural'] );
}
+ /**
+ * @return array
+ */
public function get_columns() {
return array();
}
+ /**
+ * @param object $plugin_a
+ * @param object $plugin_b
+ * @return int
+ */
private function order_callback( $plugin_a, $plugin_b ) {
$orderby = $this->orderby;
if ( ! isset( $plugin_a->$orderby, $plugin_b->$orderby ) ) {
@@ -319,13 +379,16 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
return 0;
}
- if ( 'DESC' == $this->order ) {
+ if ( 'DESC' === $this->order ) {
return ( $a < $b ) ? 1 : -1;
} else {
return ( $a < $b ) ? -1 : 1;
}
}
+ /**
+ * @global string $wp_version
+ */
public function display_rows() {
$plugins_allowedtags = array(
'a' => array( 'href' => array(),'title' => array(), 'target' => array() ),
@@ -391,14 +454,14 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
case 'install':
if ( $status['url'] ) {
/* translators: 1: Plugin name and version. */
- $action_links[] = '
' . __( 'Install Now' ) . '';
+ $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;
@@ -434,12 +497,19 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
* @param array $plugin The plugin currently being listed.
*/
$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'] );
?>
-
+
-
()
-
-
+
+
-
+ = 1000000 ) {
+ $active_installs_text = _x( '1+ Million', 'Active plugin installs' );
+ } else {
+ $active_installs_text = number_format_i18n( $plugin['active_installs'] ) . '+';
+ }
+ printf( __( '%s Active Installs' ), $active_installs_text );
+ ?>
' ) ) {
- echo '' . __( 'Untested with your version of WordPress' ) . '';
+ echo '' . __( 'Untested with your version of WordPress' ) . '';
} elseif ( ! empty( $plugin['requires'] ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $plugin['requires'] ) ), $plugin['requires'], '<' ) ) {
echo '' . __( 'Incompatible with your version of WordPress' ) . '';
} else {