Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Wordpress Multisite/BuddyPress: Sortable Spam Column

By: a guest on Jul 2nd, 2011  |  syntax: PHP  |  size: 2.51 KB  |  views: 301  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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. ?>