Wordpress++
This commit is contained in:
1 parent
790f1487a2
commit
3f49ab1747
610 files changed
+58979
-36562
No files matched your search
@@ -17,6 +17,9 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
*
|
||||
* @see WP_List_Table::__construct() for more information on default arguments.
|
||||
*
|
||||
* @global string $status
|
||||
* @global int $page
|
||||
*
|
||||
* @param array $args An associative array of arguments.
|
||||
*/
|
||||
public function __construct( $args = array() ) {
|
||||
@@ -37,14 +40,30 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
$page = $this->get_pagenum();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function get_table_classes() {
|
||||
return array( 'widefat', $this->_args['plural'] );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function ajax_user_can() {
|
||||
return current_user_can('activate_plugins');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @global string $status
|
||||
* @global type $plugins
|
||||
* @global array $totals
|
||||
* @global int $page
|
||||
* @global string $orderby
|
||||
* @global string $order
|
||||
* @global string $s
|
||||
*/
|
||||
public function prepare_items() {
|
||||
global $status, $plugins, $totals, $page, $orderby, $order, $s;
|
||||
|
||||
@@ -180,13 +199,16 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
|
||||
$total_this_page = $totals[ $status ];
|
||||
|
||||
if ( $orderby ) {
|
||||
if ( ! $orderby ) {
|
||||
$orderby = 'Name';
|
||||
} else {
|
||||
$orderby = ucfirst( $orderby );
|
||||
$order = strtoupper( $order );
|
||||
|
||||
uasort( $this->items, array( $this, '_order_callback' ) );
|
||||
}
|
||||
|
||||
$order = strtoupper( $order );
|
||||
|
||||
uasort( $this->items, array( $this, '_order_callback' ) );
|
||||
|
||||
$plugins_per_page = $this->get_items_per_page( str_replace( '-', '_', $screen->id . '_per_page' ), 999 );
|
||||
|
||||
$start = ( $page - 1 ) * $plugins_per_page;
|
||||
@@ -203,10 +225,10 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
/**
|
||||
* @staticvar string $term
|
||||
* @param array $plugin
|
||||
* @return boolean
|
||||
* @return bool
|
||||
*/
|
||||
public function _search_callback( $plugin ) {
|
||||
static $term;
|
||||
static $term = null;
|
||||
if ( is_null( $term ) )
|
||||
$term = wp_unslash( $_REQUEST['s'] );
|
||||
|
||||
@@ -235,12 +257,17 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
if ( $a == $b )
|
||||
return 0;
|
||||
|
||||
if ( 'DESC' == $order )
|
||||
return ( $a < $b ) ? 1 : -1;
|
||||
else
|
||||
return ( $a < $b ) ? -1 : 1;
|
||||
if ( 'DESC' == $order ) {
|
||||
return strcasecmp( $b, $a );
|
||||
} else {
|
||||
return strcasecmp( $a, $b );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @global array $plugins
|
||||
*/
|
||||
public function no_items() {
|
||||
global $plugins;
|
||||
|
||||
@@ -250,6 +277,11 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
_e( 'You do not appear to have any plugins available at this time.' );
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @global string $status
|
||||
* @return array
|
||||
*/
|
||||
public function get_columns() {
|
||||
global $status;
|
||||
|
||||
@@ -260,10 +292,19 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function get_sortable_columns() {
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @global array $totals
|
||||
* @global string $status
|
||||
* @return array
|
||||
*/
|
||||
protected function get_views() {
|
||||
global $totals, $status;
|
||||
|
||||
@@ -308,6 +349,11 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
return $status_links;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @global string $status
|
||||
* @return array
|
||||
*/
|
||||
protected function get_bulk_actions() {
|
||||
global $status;
|
||||
|
||||
@@ -332,7 +378,6 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
/**
|
||||
* @global string $status
|
||||
* @param string $which
|
||||
* @return null
|
||||
*/
|
||||
public function bulk_actions( $which = '' ) {
|
||||
global $status;
|
||||
@@ -346,7 +391,6 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
/**
|
||||
* @global string $status
|
||||
* @param string $which
|
||||
* @return null
|
||||
*/
|
||||
protected function extra_tablenav( $which ) {
|
||||
global $status;
|
||||
@@ -366,6 +410,9 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function current_action() {
|
||||
if ( isset($_POST['clear-recent-list']) )
|
||||
return 'clear-recent-list';
|
||||
@@ -373,6 +420,10 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
return parent::current_action();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @global string $status
|
||||
*/
|
||||
public function display_rows() {
|
||||
global $status;
|
||||
|
||||
@@ -388,6 +439,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
* @global int $page
|
||||
* @global string $s
|
||||
* @global array $totals
|
||||
*
|
||||
* @param array $item
|
||||
*/
|
||||
public function single_row( $item ) {
|
||||
@@ -421,7 +473,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
$description = '<p><strong>' . $dropins[ $plugin_file ][0] . '</strong></p>';
|
||||
} else {
|
||||
$is_active = false;
|
||||
$description = '<p><strong>' . $dropins[ $plugin_file ][0] . ' <span class="attention">' . __('Inactive:') . '</span></strong> ' . sprintf( __( 'Requires <code>%s</code> in <code>wp-config.php</code>.' ), "define('" . $dropins[ $plugin_file ][1] . "', true);" ) . '</p>';
|
||||
$description = '<p><strong>' . $dropins[ $plugin_file ][0] . ' <span class="error-message">' . __('Inactive:') . '</span></strong> ' . sprintf( __( 'Requires <code>%s</code> in <code>wp-config.php</code>.' ), "define('" . $dropins[ $plugin_file ][1] . "', true);" ) . '</p>';
|
||||
}
|
||||
if ( $plugin_data['Description'] )
|
||||
$description .= '<p>' . $plugin_data['Description'] . '</p>';
|
||||
@@ -433,28 +485,40 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
|
||||
if ( $screen->in_admin( 'network' ) ) {
|
||||
if ( $is_active ) {
|
||||
if ( current_user_can( 'manage_network_plugins' ) )
|
||||
$actions['deactivate'] = '<a href="' . wp_nonce_url('plugins.php?action=deactivate&plugin=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'deactivate-plugin_' . $plugin_file) . '" title="' . esc_attr__('Deactivate this plugin') . '">' . __('Network Deactivate') . '</a>';
|
||||
if ( current_user_can( 'manage_network_plugins' ) ) {
|
||||
/* translators: %s: plugin name */
|
||||
$actions['deactivate'] = '<a href="' . wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'deactivate-plugin_' . $plugin_file ) . '" aria-label="' . esc_attr( sprintf( __( 'Network deactivate %s' ), $plugin_data['Name'] ) ) . '">' . __( 'Network Deactivate' ) . '</a>';
|
||||
}
|
||||
} else {
|
||||
if ( current_user_can( 'manage_network_plugins' ) )
|
||||
$actions['activate'] = '<a href="' . wp_nonce_url('plugins.php?action=activate&plugin=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'activate-plugin_' . $plugin_file) . '" title="' . esc_attr__('Activate this plugin for all sites in this network') . '" class="edit">' . __('Network Activate') . '</a>';
|
||||
if ( current_user_can( 'delete_plugins' ) && ! is_plugin_active( $plugin_file ) )
|
||||
$actions['delete'] = '<a href="' . wp_nonce_url('plugins.php?action=delete-selected&checked[]=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'bulk-plugins') . '" title="' . esc_attr__('Delete this plugin') . '" class="delete">' . __('Delete') . '</a>';
|
||||
if ( current_user_can( 'manage_network_plugins' ) ) {
|
||||
/* translators: %s: plugin name */
|
||||
$actions['activate'] = '<a href="' . wp_nonce_url( 'plugins.php?action=activate&plugin=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'activate-plugin_' . $plugin_file ) . '" class="edit" aria-label="' . esc_attr( sprintf( __( 'Network Activate %s' ), $plugin_data['Name'] ) ) . '">' . __( 'Network Activate' ) . '</a>';
|
||||
}
|
||||
if ( current_user_can( 'delete_plugins' ) && ! is_plugin_active( $plugin_file ) ) {
|
||||
/* translators: %s: plugin name */
|
||||
$actions['delete'] = '<a href="' . wp_nonce_url( 'plugins.php?action=delete-selected&checked[]=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'bulk-plugins' ) . '" class="delete" aria-label="' . esc_attr( sprintf( __( 'Delete %s' ), $plugin_data['Name'] ) ) . '">' . __( 'Delete' ) . '</a>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( $is_active ) {
|
||||
$actions['deactivate'] = '<a href="' . wp_nonce_url('plugins.php?action=deactivate&plugin=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'deactivate-plugin_' . $plugin_file) . '" title="' . esc_attr__('Deactivate this plugin') . '">' . __('Deactivate') . '</a>';
|
||||
/* translators: %s: plugin name */
|
||||
$actions['deactivate'] = '<a href="' . wp_nonce_url( 'plugins.php?action=deactivate&plugin=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'deactivate-plugin_' . $plugin_file ) . '" aria-label="' . esc_attr( sprintf( __( 'Deactivate %s' ), $plugin_data['Name'] ) ) . '">' . __( 'Deactivate' ) . '</a>';
|
||||
} else {
|
||||
$actions['activate'] = '<a href="' . wp_nonce_url('plugins.php?action=activate&plugin=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'activate-plugin_' . $plugin_file) . '" title="' . esc_attr__('Activate this plugin') . '" class="edit">' . __('Activate') . '</a>';
|
||||
/* translators: %s: plugin name */
|
||||
$actions['activate'] = '<a href="' . wp_nonce_url( 'plugins.php?action=activate&plugin=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'activate-plugin_' . $plugin_file ) . '" class="edit" aria-label="' . esc_attr( sprintf( __( 'Activate %s' ), $plugin_data['Name'] ) ) . '">' . __( 'Activate' ) . '</a>';
|
||||
|
||||
if ( ! is_multisite() && current_user_can('delete_plugins') )
|
||||
$actions['delete'] = '<a href="' . wp_nonce_url('plugins.php?action=delete-selected&checked[]=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'bulk-plugins') . '" title="' . esc_attr__('Delete this plugin') . '" class="delete">' . __('Delete') . '</a>';
|
||||
if ( ! is_multisite() && current_user_can( 'delete_plugins' ) ) {
|
||||
/* translators: %s: plugin name */
|
||||
$actions['delete'] = '<a href="' . wp_nonce_url( 'plugins.php?action=delete-selected&checked[]=' . $plugin_file . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s, 'bulk-plugins' ) . '" class="delete" aria-label="' . esc_attr( sprintf( __( 'Delete %s' ), $plugin_data['Name'] ) ) . '">' . __( 'Delete' ) . '</a>';
|
||||
}
|
||||
} // end if $is_active
|
||||
|
||||
} // end if $screen->in_admin( 'network' )
|
||||
|
||||
if ( ( ! is_multisite() || $screen->in_admin( 'network' ) ) && current_user_can('edit_plugins') && is_writable(WP_PLUGIN_DIR . '/' . $plugin_file) )
|
||||
$actions['edit'] = '<a href="plugin-editor.php?file=' . $plugin_file . '" title="' . esc_attr__('Open this file in the Plugin Editor') . '" class="edit">' . __('Edit') . '</a>';
|
||||
if ( ( ! is_multisite() || $screen->in_admin( 'network' ) ) && current_user_can( 'edit_plugins' ) && is_writable( WP_PLUGIN_DIR . '/' . $plugin_file ) ) {
|
||||
/* translators: %s: plugin name */
|
||||
$actions['edit'] = '<a href="plugin-editor.php?file=' . $plugin_file . '" class="edit" aria-label="' . esc_attr( sprintf( __( 'Edit %s' ), $plugin_data['Name'] ) ) . '">' . __( 'Edit' ) . '</a>';
|
||||
}
|
||||
} // end if $context
|
||||
|
||||
$prefix = $screen->in_admin( 'network' ) ? 'network_admin_' : '';
|
||||
@@ -531,24 +595,27 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
$plugin_slug
|
||||
);
|
||||
|
||||
list( $columns, $hidden ) = $this->get_column_info();
|
||||
list( $columns, $hidden, $sortable, $primary ) = $this->get_column_info();
|
||||
|
||||
foreach ( $columns as $column_name => $column_display_name ) {
|
||||
$style = '';
|
||||
if ( in_array( $column_name, $hidden ) )
|
||||
$style = ' style="display:none;"';
|
||||
$extra_classes = '';
|
||||
if ( in_array( $column_name, $hidden ) ) {
|
||||
$extra_classes = ' hidden';
|
||||
}
|
||||
|
||||
switch ( $column_name ) {
|
||||
case 'cb':
|
||||
echo "<th scope='row' class='check-column'>$checkbox</th>";
|
||||
break;
|
||||
case 'name':
|
||||
echo "<td class='plugin-title'$style><strong>$plugin_name</strong>";
|
||||
echo "<td class='plugin-title column-primary'><strong>$plugin_name</strong>";
|
||||
echo $this->row_actions( $actions, true );
|
||||
echo "</td>";
|
||||
break;
|
||||
case 'description':
|
||||
echo "<td class='column-description desc'$style>
|
||||
$classes = 'column-description desc';
|
||||
|
||||
echo "<td class='$classes{$extra_classes}'>
|
||||
<div class='plugin-description'>$description</div>
|
||||
<div class='$class second plugin-version-author-uri'>";
|
||||
|
||||
@@ -598,7 +665,9 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
echo "</div></td>";
|
||||
break;
|
||||
default:
|
||||
echo "<td class='$column_name column-$column_name'$style>";
|
||||
$classes = "$column_name column-$column_name$class";
|
||||
|
||||
echo "<td class='$classes{$extra_classes}'>";
|
||||
|
||||
/**
|
||||
* Fires inside each custom column of the Plugins list table.
|
||||
@@ -610,6 +679,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
* @param array $plugin_data An array of plugin data.
|
||||
*/
|
||||
do_action( 'manage_plugins_custom_column', $column_name, $plugin_file, $plugin_data );
|
||||
|
||||
echo "</td>";
|
||||
}
|
||||
}
|
||||
@@ -645,4 +715,16 @@ class WP_Plugins_List_Table extends WP_List_Table {
|
||||
*/
|
||||
do_action( "after_plugin_row_$plugin_file", $plugin_file, $plugin_data, $status );
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name of the primary column for this specific list table.
|
||||
*
|
||||
* @since 4.3.0
|
||||
* @access protected
|
||||
*
|
||||
* @return string Unalterable name for the primary column, in this case, 'name'.
|
||||
*/
|
||||
protected function get_primary_column_name() {
|
||||
return 'name';
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user