Changeset 7135
- Timestamp:
- 06/03/2013 02:32:50 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-core/bp-core-classes.php
r7024 r7135 199 199 200 200 // 'online' query happens against the last_activity usermeta key 201 // Filter 'bp_user_query_online_interval' to modify the 202 // number of minutes used as an interval 201 203 case 'online' : 202 204 $this->uid_name = 'user_id'; 203 205 $sql['select'] = "SELECT DISTINCT u.{$this->uid_name} as id FROM {$wpdb->usermeta} u"; 204 206 $sql['where'][] = $wpdb->prepare( "u.meta_key = %s", bp_get_user_meta_key( 'last_activity' ) ); 205 $sql['where'][] = 'u.meta_value >= DATE_SUB( UTC_TIMESTAMP(), INTERVAL 5 MINUTE )';207 $sql['where'][] = $wpdb->prepare( "u.meta_value >= DATE_SUB( UTC_TIMESTAMP(), INTERVAL %d MINUTE )", apply_filters( 'bp_user_query_online_interval', 15 ) ); 206 208 $sql['orderby'] = "ORDER BY u.meta_value"; 207 209 $sql['order'] = "DESC"; -
trunk/tests/testcases/core/class-bp-user-query.php
r7090 r7135 103 103 } 104 104 105 /** 106 * @group online 107 */ 108 public function test_bp_user_query_type_online() { 109 $now = time(); 110 $u1 = $this->create_user( array( 111 'last_activity' => date( 'Y-m-d H:i:s', $now ), 112 ) ); 113 $u2 = $this->create_user( array( 114 'last_activity' => date( 'Y-m-d H:i:s', $now - 60*13 ), 115 ) ); 116 $u3 = $this->create_user( array( 117 'last_activity' => date( 'Y-m-d H:i:s', $now - 60*16 ), 118 ) ); 119 120 $q = new BP_User_Query( array( 121 'type' => 'online', 122 ) ); 123 124 $users = is_array( $q->results ) ? array_values( $q->results ) : array(); 125 $user_ids = wp_parse_id_list( wp_list_pluck( $users, 'ID' ) ); 126 $this->assertEquals( array( $u1, $u2 ), $user_ids ); 127 } 128 129 /** 130 * @group online 131 */ 132 public function test_bp_user_query_type_online_five_minute_interval() { 133 $now = time(); 134 $u1 = $this->create_user( array( 135 'last_activity' => date( 'Y-m-d H:i:s', $now ), 136 ) ); 137 $u2 = $this->create_user( array( 138 'last_activity' => date( 'Y-m-d H:i:s', $now - 60*4 ), 139 ) ); 140 $u3 = $this->create_user( array( 141 'last_activity' => date( 'Y-m-d H:i:s', $now - 60*6 ), 142 ) ); 143 144 add_filter( 'bp_user_query_online_interval', create_function( '', 'return 5;' ) ); 145 146 $q = new BP_User_Query( array( 147 'type' => 'online', 148 ) ); 149 150 $users = is_array( $q->results ) ? array_values( $q->results ) : array(); 151 $user_ids = wp_parse_id_list( wp_list_pluck( $users, 'ID' ) ); 152 $this->assertEquals( array( $u1, $u2 ), $user_ids ); 153 } 154 155 105 156 public function test_bp_user_query_search_with_apostrophe() { 106 157 // Apostrophe. Search_terms must escaped to mimic POST payload
Note: See TracChangeset
for help on using the changeset viewer.