title = __("adminusers", "dagsopt"); $this->pluginname = $ns->pluginname; $this->file = $ns->file; $this->ns = $ns; } function start() { add_action('manage_users_custom_column', array(&$this, 'imel_custom_column_userfield'), 15, 3); add_filter('manage_users_columns', array(&$this, 'imel_column_userfield'), 15, 1); add_filter('manage_users_sortable_columns', array(&$this, 'user_sortable_columns'), 15, 1); if (is_admin()) { //prolly not necessary, but I do want to be sure this only runs within the admin add_action('pre_user_query', array(&$this, 'my_user_query')); } } function help() { ?>
$obj) { // $s .= human_time_diff($obj['login']) . " " . $obj['ua'] . "\n"; $s .= human_time_diff($obj['login']) . "
"; } return $s; } else { return "N"; } } if ($column_name == 'session') { $ss = get_user_meta($id, 'session_tokens', true); if ($ss) { $s = ""; $i = 0; foreach ($ss as $name => $obj) { if ($i < 2) { $s .= human_time_diff($obj['login']) . " "; } $i++; } return count($ss) . ' | ' . $s . ''; } else { return "N"; } } if ($column_name == 'imel-login2-userfield') { $ss = get_user_meta($id, 'session_tokens', true); if ($ss) { //$f = array_pop(array_keys($ss)); //return human_time_diff($ss[$f]['login']); return "L"; } else { return "N"; } } } function user_sortable_columns($columns) { $columns['session'] = 'session'; $columns['id'] = 'id'; $columns['gruppe'] = 'gruppe'; $columns['proselect'] = 'proselect'; $columns['lastlogin'] = 'lastlogin'; $columns['lastview'] = 'lastview'; return $columns; } function my_user_query($userquery) { if ('session' == $userquery->query_vars['orderby']) { global $wpdb; $userquery->query_from .= " LEFT OUTER JOIN $wpdb->usermeta AS alias ON ($wpdb->users.ID = alias.user_id) "; //note use of alias $userquery->query_where .= " AND alias.meta_key = 'session_tokens' "; //which meta are we sorting with? $userquery->query_orderby = " ORDER BY length(alias.meta_value) " . ($userquery->query_vars["order"] == "ASC" ? "asc " : "desc "); //set sort order } if ('proselect' == $userquery->query_vars['orderby']) { global $wpdb; $userquery->query_from .= " LEFT OUTER JOIN $wpdb->usermeta AS alias ON ($wpdb->users.ID = alias.user_id) "; //note use of alias $userquery->query_where .= " AND alias.meta_key = 'Proselect' "; //which meta are we sorting with? $userquery->query_orderby = " ORDER BY alias.meta_value " . ($userquery->query_vars["order"] == "ASC" ? "asc " : "desc "); //set sort order } if ('gruppe' == $userquery->query_vars['orderby']) { global $wpdb; $userquery->query_from .= " LEFT OUTER JOIN $wpdb->usermeta AS alias ON ($wpdb->users.ID = alias.user_id) "; //note use of alias $userquery->query_where .= " AND alias.meta_key = 'Gruppe' "; //which meta are we sorting with? $userquery->query_orderby = " ORDER BY alias.meta_value " . ($userquery->query_vars["order"] == "ASC" ? "asc " : "desc "); //set sort order } if ('lastlogin' == $userquery->query_vars['orderby']) { global $wpdb; $userquery->query_from .= " LEFT OUTER JOIN $wpdb->usermeta AS alias ON ($wpdb->users.ID = alias.user_id) "; //note use of alias $userquery->query_where .= " AND alias.meta_key = 'last_login' "; //which meta are we sorting with? $userquery->query_orderby = " ORDER BY alias.meta_value " . ($userquery->query_vars["order"] == "ASC" ? "asc " : "desc "); //set sort order } if ('lastview' == $userquery->query_vars['orderby']) { global $wpdb; $userquery->query_from .= " LEFT OUTER JOIN $wpdb->usermeta AS alias ON ($wpdb->users.ID = alias.user_id) "; //note use of alias $userquery->query_where .= " AND alias.meta_key = 'last_view' "; //which meta are we sorting with? $userquery->query_orderby = " ORDER BY alias.meta_value " . ($userquery->query_vars["order"] == "ASC" ? "asc " : "desc "); //set sort order } if ('id' == $userquery->query_vars['orderby']) { global $wpdb; //$userquery->query_from .= " LEFT OUTER JOIN $wpdb->usermeta AS alias ON ($wpdb->users.ID = alias.user_id) "; //note use of alias //$userquery->query_where .= " AND alias.meta_key = 'session_tokens' "; //which meta are we sorting with? $userquery->query_orderby = " ORDER BY ID " . ($userquery->query_vars["order"] == "ASC" ? "asc " : "desc "); //set sort order } } } global $plug_adminusers; $plug_adminusers = new plug_adminusers($this); $this->dagsopt['plug_adminusers'] = $plug_adminusers; }