From 21bef0ad36a3e6d6647d946e46585eb6acfaca5c Mon Sep 17 00:00:00 2001 From: scribu Date: Sat, 13 Nov 2010 16:57:25 +0000 Subject: [PATCH] Add 'manage_plugin_custom_column' action and properly hide plugin columns. See #15318 git-svn-id: https://develop.svn.wordpress.org/trunk@16348 602fd350-edb4-49c9-b593-d223f7449a82 --- .../includes/class-wp-plugins-list-table.php | 81 ++++++++++--------- wp-admin/js/list-table.dev.js | 4 +- 2 files changed, 46 insertions(+), 39 deletions(-) diff --git a/wp-admin/includes/class-wp-plugins-list-table.php b/wp-admin/includes/class-wp-plugins-list-table.php index b86ead3565..196f8b8b80 100644 --- a/wp-admin/includes/class-wp-plugins-list-table.php +++ b/wp-admin/includes/class-wp-plugins-list-table.php @@ -392,52 +392,61 @@ class WP_Plugins_List_Table extends WP_List_Table { $class = $is_active ? 'active' : 'inactive'; $checkbox_id = md5($plugin_data['Name']) . "_checkbox"; $checkbox = in_array( $status, array( 'mustuse', 'dropins' ) ) ? '' : ""; - if ( 'dropins' != $status ) { + if ( 'dropins' != $context ) { $description = '

' . $plugin_data['Description'] . '

'; $plugin_name = $plugin_data['Name']; } $id = sanitize_title( $plugin_name ); + echo ""; - echo " - - $checkbox - - $plugin_name - "; - - echo $this->row_actions( $actions, true ); + list( $columns, $hidden ) = $this->get_column_info(); - echo " - - -
- $description -
-
- "; + foreach ( $columns as $column_name => $column_display_name ) { + $style = ''; + if ( in_array( $column_name, $hidden ) ) + $style = ' style="display:none;"'; + + switch ( $column_name ) { + case 'cb': + echo "$checkbox"; + break; + case 'name': + echo "$plugin_name"; + echo $this->row_actions( $actions, true ); + echo ""; + break; + case 'description': + echo " +
$description
+
"; + + $plugin_meta = array(); + if ( !empty( $plugin_data['Version'] ) ) + $plugin_meta[] = sprintf( __( 'Version %s' ), $plugin_data['Version'] ); + if ( !empty( $plugin_data['Author'] ) ) { + $author = $plugin_data['Author']; + if ( !empty( $plugin_data['AuthorURI'] ) ) + $author = '' . $plugin_data['Author'] . ''; + $plugin_meta[] = sprintf( __( 'By %s' ), $author ); + } + if ( ! empty( $plugin_data['PluginURI'] ) ) + $plugin_meta[] = '' . __( 'Visit plugin site' ) . ''; - $plugin_meta = array(); - if ( !empty( $plugin_data['Version'] ) ) - $plugin_meta[] = sprintf( __( 'Version %s' ), $plugin_data['Version'] ); - if ( !empty( $plugin_data['Author'] ) ) { - $author = $plugin_data['Author']; - if ( !empty( $plugin_data['AuthorURI'] ) ) - $author = '' . $plugin_data['Author'] . ''; - $plugin_meta[] = sprintf( __( 'By %s' ), $author ); - } - if ( ! empty( $plugin_data['PluginURI'] ) ) - $plugin_meta[] = '' . __( 'Visit plugin site' ) . ''; - - $plugin_meta = apply_filters( 'plugin_row_meta', $plugin_meta, $plugin_file, $plugin_data, $status ); - echo implode( ' | ', $plugin_meta ); + $plugin_meta = apply_filters( 'plugin_row_meta', $plugin_meta, $plugin_file, $plugin_data, $status ); + echo implode( ' | ', $plugin_meta ); - echo " -
- - -"; + echo "
"; + break; + default: + echo ""; + do_action( 'manage_plugin_custom_column', $column_name, $plugin_file, $plugin_data ); + echo ""; + } + } + + echo ""; do_action( 'after_plugin_row', $plugin_file, $plugin_data, $status ); do_action( "after_plugin_row_$plugin_file", $plugin_file, $plugin_data, $status ); diff --git a/wp-admin/js/list-table.dev.js b/wp-admin/js/list-table.dev.js index 9cf9968593..f7bd06afcf 100644 --- a/wp-admin/js/list-table.dev.js +++ b/wp-admin/js/list-table.dev.js @@ -65,7 +65,7 @@ window.listTable = { data = $.query.get(); this._callback = callback; - + this.fetch_list( data, $.proxy(this, 'handle_success'), @@ -107,8 +107,6 @@ window.listTable = { $('.current-page').val($.query.GET('paged')); $('th.column-cb :input').attr('checked', false); - - columns.init(); // To rehide the hidden columns. if ( this._callback ) this._callback();