1e3e09e1 by Marty Penner

Promoting user search changes to live.

1 parent ac8af503
...@@ -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">
......