Promoting user search changes to live.
Showing
1 changed file
with
13 additions
and
5 deletions
| ... | @@ -36,13 +36,13 @@ class UserSearch implements ArrayAccess, Iterator, Countable { | ... | @@ -36,13 +36,13 @@ class UserSearch implements ArrayAccess, Iterator, Countable { |
| 36 | 36 | ||
| 37 | protected $userclass = 'User'; | 37 | protected $userclass = 'User'; |
| 38 | 38 | ||
| 39 | public function __construct(Array $fields, $num_results = -1, $page = 1, $sortby = null, $sortorder = 'ASC', Array $field_match = null, $text_search = null, Array $in_groups = null) { | 39 | public function __construct(Array $fields, $num_results = -1, $page = 1, $sortby = null, $sortorder = 'ASC', Array $field_match = null, $text_search = null, Array $in_groups = null, $search_users_table = null) { |
| 40 | $this->userclass = __NAMESPACE__ . '\User'; | 40 | $this->userclass = __NAMESPACE__ . '\User'; |
| 41 | 41 | ||
| 42 | global $wpdb; | 42 | global $wpdb; |
| 43 | 43 | ||
| 44 | $this->fields = $fields; | 44 | $this->fields = $fields; |
| 45 | $search_clause = $limit_clause = $order_clause = $order_sort = $having_clause = $uam_join = $uam_clause = ''; | 45 | $search_clause = $limit_clause = $order_clause = $order_sort = $having_clause = $uam_join = $uam_clause = ''; |
| 46 | 46 | ||
| 47 | // Field matches | 47 | // Field matches |
| 48 | $having = " HAVING `json` LIKE "; | 48 | $having = " HAVING `json` LIKE "; |
| ... | @@ -74,7 +74,7 @@ class UserSearch implements ArrayAccess, Iterator, Countable { | ... | @@ -74,7 +74,7 @@ class UserSearch implements ArrayAccess, Iterator, Countable { |
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | // Pagination | 76 | // Pagination |
| 77 | if ($num_results > 0) { | 77 | if ($num_results > 0) { |
| 78 | $limit_clause = " LIMIT " . (($page - 1) * $num_results ) . ", {$num_results}"; | 78 | $limit_clause = " LIMIT " . (($page - 1) * $num_results ) . ", {$num_results}"; |
| 79 | } | 79 | } |
| 80 | 80 | ||
| ... | @@ -84,10 +84,17 @@ class UserSearch implements ArrayAccess, Iterator, Countable { | ... | @@ -84,10 +84,17 @@ class UserSearch implements ArrayAccess, Iterator, Countable { |
| 84 | $uam_clause = " AND `uam`.`object_type` = 'user' AND `uam`.`group_id` IN (" . implode(',', $in_groups) . ") "; | 84 | $uam_clause = " AND `uam`.`object_type` = 'user' AND `uam`.`group_id` IN (" . implode(',', $in_groups) . ") "; |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | // Users table | ||
| 88 | if (!is_null($search_users_table)) { | ||
| 89 | if (!empty($having_clause)) { | ||
| 90 | $having_clause .= "\n OR `user_id` IN (SELECT `ID` FROM `wp_users` WHERE (`user_login` LIKE '%{$search}%' OR `user_nicename` LIKE '%{$search}%'))"; | ||
| 91 | } | ||
| 92 | } | ||
| 93 | |||
| 87 | mysql_query("SET SESSION group_concat_max_len = 40960", $wpdb->dbh); | 94 | mysql_query("SET SESSION group_concat_max_len = 40960", $wpdb->dbh); |
| 88 | 95 | ||
| 89 | $query = " | 96 | $query = " |
| 90 | SELECT SQL_CALC_FOUND_ROWS | 97 | SELECT SQL_CALC_FOUND_ROWS |
| 91 | `user_id` | 98 | `user_id` |
| 92 | , CONCAT( | 99 | , CONCAT( |
| 93 | '{' | 100 | '{' |
| ... | @@ -103,7 +110,7 @@ class UserSearch implements ArrayAccess, Iterator, Countable { | ... | @@ -103,7 +110,7 @@ class UserSearch implements ArrayAccess, Iterator, Countable { |
| 103 | {$order_clause} | 110 | {$order_clause} |
| 104 | FROM `wp_usermeta` | 111 | FROM `wp_usermeta` |
| 105 | {$uam_join} | 112 | {$uam_join} |
| 106 | WHERE | 113 | WHERE |
| 107 | `meta_key` IN ('" . implode("','", $this->fields) . "') | 114 | `meta_key` IN ('" . implode("','", $this->fields) . "') |
| 108 | {$uam_clause} | 115 | {$uam_clause} |
| 109 | GROUP BY `user_id` | 116 | GROUP BY `user_id` |
| ... | @@ -111,6 +118,7 @@ class UserSearch implements ArrayAccess, Iterator, Countable { | ... | @@ -111,6 +118,7 @@ class UserSearch implements ArrayAccess, Iterator, Countable { |
| 111 | {$order_sort} | 118 | {$order_sort} |
| 112 | {$limit_clause} | 119 | {$limit_clause} |
| 113 | "; | 120 | "; |
| 121 | //die(var_dump($query)); | ||
| 114 | /* | 122 | /* |
| 115 | ?> | 123 | ?> |
| 116 | <textarea style="width: 95%; height: 35em; font-size: 11px;" autofocus="autofocus"> | 124 | <textarea style="width: 95%; height: 35em; font-size: 11px;" autofocus="autofocus"> | ... | ... |
-
Please register or sign in to post a comment