123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <?php
- if (!class_exists("plug_adminusers")) {
- class plug_adminusers {
- function __construct($ns) {
- $this->title = __("adminusers", "dagsopt");
- $this->pluginname = $ns->pluginname;
- $this->file = $ns->file;
- $this->ns = $ns;
- }
- function start() {
- add_filter('manage_users_custom_column', array(&$this, 'imel_custom_column_userfield'), 12, 3);
- add_filter('manage_users_columns', array(&$this, 'imel_column_userfield'), 12, 1);
- add_filter('manage_users_sortable_columns', array(&$this, 'user_sortable_columns'), 14, 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() {
- ?>
- <?php echo (__("Adds adminusers functions", "dagsopt")) ?>
- <?php
- }
- function Option($pre) {
- // update_option($pre . '_support_splash', $_POST[$pre . '_support_splash']);
- }
- function admin_line($pre) {
- ?>
- <hr>
- <?php
- }
- function imel_column_userfield($defaults) {
- $defaults['lastlogin'] = __('Seneste Login', 'lastlogin-column');
- $defaults['lastview'] = __('Sidst set', 'lastlogin-column');
- $defaults['proselect'] = __('Pro/Select', 'user-column');
- $defaults['gruppe'] = __('Gruppe', 'id-column');
- $defaults['navn'] = __('Navn', 'navn-column');
- $defaults['session'] = __('Sessions', 'session-column');
- $defaults['id'] = __('id', 'id-column');
- return $defaults;
- }
- function imel_custom_column_userfield($value, $column_name, $id) {
- if ($column_name == 'lastlogin') {
- $ss = get_user_meta($id, 'last_login', true);
- if ($ss) {
- $the_login_date = human_time_diff($ss);
- return $the_login_date;
- } else {
- return " ";
- }
- }
- if ($column_name == 'lastview') {
- $ss = get_user_meta($id, 'last_view', true);
- if ($ss) {
- $the_login_date = human_time_diff($ss);
- return $the_login_date;
- } else {
- return " ";
- }
- }
- if ($column_name == 'proselect') {
- $s = get_user_meta($id, 'Proselect', true);
- return $s;
- }
- if ($column_name == 'gruppe') {
- $s = get_user_meta($id, 'Gruppe', true);
- return $s;
- }
- if ($column_name == 'id') {
- return $id;
- }
- if ($column_name == 'navn') {
- return get_user_meta($id, 'Navn', true);
- }
- 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";
- }
- }
- return $value;
- }
- 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;
- }
|