Advertisement
Guest User

Wordpress Multisite/BuddyPress: Sortable Spam Column

a guest
Jul 2nd, 2011
505
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.51 KB | None | 0 0
  1. <?php
  2. /* Plugin Name: Sortable Spam Column */
  3. class SortableSpamColumn{
  4.     function init(){
  5.         if(is_super_admin()){
  6.             if($_SERVER['PHP_SELF']=='/wp-admin/network/users.php'){
  7.                 add_filter('wpmu_users_columns',                        array('SortableSpamColumn', 'register_column'));
  8.                 add_filter('manage_users-network_sortable_columns',     array('SortableSpamColumn', 'register_sortable_column'));
  9.                 add_filter('manage_users_custom_column',                array('SortableSpamColumn', 'users_field'), 10, 3);
  10.                 if((isset($_GET['orderby'])) && ($_GET['orderby']=="spam")){
  11.                     add_action('pre_user_query',                        array('SortableSpamColumn', 'users_query') );
  12.                 }
  13.             }elseif($_SERVER['PHP_SELF']=='/wp-admin/network/sites.php'){
  14.                 add_filter('wpmu_blogs_columns',                        array('SortableSpamColumn', 'register_column'));
  15.                 add_filter('manage_sites-network_sortable_columns',     array('SortableSpamColumn', 'register_sortable_column'));  
  16.                 add_filter('manage_sites_custom_column',                array('SortableSpamColumn', 'sites_field'), 10, 2);
  17.                 if((isset($_GET['orderby'])) && ($_GET['orderby']=="spam")){
  18.                     add_action('query',                                 array('SortableSpamColumn', 'sites_query') );
  19.                 }
  20.             }
  21.         }
  22.     }
  23.     function register_column($columns){
  24.         $columns['spam'] = __('Spam');
  25.         return $columns;
  26.     }
  27.     function register_sortable_column($columns){
  28.         $columns['spam'] = 'spam';
  29.         return $columns;
  30.     }
  31.     function users_field($dummy, $column, $userid){
  32.         if ($column == 'spam'){
  33.             echo get_user_option('spam', $userid);
  34.         }
  35.         return $dummy;
  36.     }
  37.     function sites_field($column, $blogid){
  38.         if ($column == 'spam'){
  39.             echo get_blog_status($blogid, 'spam');
  40.         }
  41.         return $column;
  42.     }
  43.     public function query_order_by(){
  44.         $sOrder = ( isset( $_REQUEST['order'] ) && 'DESC' == strtoupper( $_REQUEST['order'] ) ) ? "DESC" : "ASC";
  45.         return "ORDER BY spam ".$sOrder;
  46.     }
  47.     public function users_query($wp_user_query){
  48.         $wp_user_query->query_orderby = SortableSpamColumn::query_order_by();
  49.         return $wp_user_query;
  50.     }
  51.     public function sites_query($query){
  52.         global $wpdb,$wp_list_table;
  53.         if(strpos($query,"SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' ")!==FALSE){
  54.             $query = "SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' ".SortableSpamColumn::query_order_by();
  55.             $per_page = (int) get_user_option( 'sites_network_per_page' );
  56.             $query .= " LIMIT " . intval( ( $wp_list_table->get_pagenum() - 1 ) * $per_page ) . ", " . intval( $per_page );
  57.         }
  58.         return $query;
  59.     }
  60. }
  61. add_filter('init' , array('SortableSpamColumn','init'));
  62. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement