Changeset 2537 for trunk/bp-groups/bp-groups-classes.php
- Timestamp:
- 02/02/2010 04:53:40 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-groups/bp-groups-classes.php
r2534 r2537 11 11 var $date_created; 12 12 13 var $user_dataset;14 15 13 var $admins; 16 14 var $total_member_count; 17 var $random_members; 18 19 function bp_groups_group( $id = null, $single = false, $get_user_dataset = true ) { 15 16 function bp_groups_group( $id = null ) { 20 17 if ( $id ) { 21 18 $this->id = $id; 22 $this->populate( $get_user_dataset ); 23 } 24 25 if ( $single ) { 26 $this->populate_meta(); 27 } 28 } 29 30 function populate( $get_user_dataset ) { 31 global $wpdb, $bp; 32 33 $sql = $wpdb->prepare( "SELECT * FROM {$bp->groups->table_name} WHERE id = %d", $this->id ); 34 $group = $wpdb->get_row($sql); 35 36 if ( $group ) { 19 $this->populate(); 20 } 21 } 22 23 function populate() { 24 global $wpdb, $bp; 25 26 if ( $group = $wpdb->get_row( $wpdb->prepare( "SELECT g.*, gm.meta_value as last_activity, gm2.meta_value as total_member_count FROM {$bp->groups->table_name} g, {$bp->groups->table_name_groupmeta} gm, {$bp->groups->table_name_groupmeta} gm2 WHERE g.id = gm.group_id AND g.id = gm2.group_id AND gm.meta_key = 'last_activity' AND gm2.meta_key = 'total_member_count' AND g.id = %d", $this->id ) ) ) { 37 27 $this->id = $group->id; 38 28 $this->creator_id = $group->creator_id; … … 43 33 $this->enable_forum = $group->enable_forum; 44 34 $this->date_created = $group->date_created; 45 $this->total_member_count = groups_get_groupmeta( $this->id, 'total_member_count' ); 46 47 if ( $get_user_dataset ) { 48 $this->user_dataset = $this->get_user_dataset(); 49 50 $this->total_member_count = count( $this->user_dataset ); 51 groups_update_groupmeta( $this->id, 'total_member_count', $this->total_member_count ); 35 $this->last_activity = $group->last_activity; 36 $this->total_member_count = $group->total_member_count; 37 $this->is_member = BP_Groups_Member::check_is_member( $bp->loggedin_user->id, $this->id ); 38 39 /* Get group admins and mods */ 40 $admin_mods = $wpdb->get_results( $wpdb->prepare( "SELECT u.ID as user_id, u.user_login, u.user_email, u.user_nicename, m.is_admin, m.is_mod FROM {$wpdb->users} u, {$bp->groups->table_name_members} m WHERE u.ID = m.user_id AND m.group_id = %d AND ( m.is_admin = 1 OR m.is_mod = 1 )", $this->id ) ); 41 foreach( (array)$admin_mods as $user ) { 42 if ( (int)$user->is_admin ) 43 $this->admins[] = $user; 44 else 45 $this->mods[] = $user; 52 46 } 53 54 /* Get group extras */55 $this->is_member = BP_Groups_Member::check_is_member( $bp->loggedin_user->id, $this->id );56 }57 }58 59 function populate_meta() {60 if ( $this->id ) {61 $this->admins = $this->get_administrators();62 $this->random_members = $this->get_random_members();63 47 } 64 48 } … … 134 118 } 135 119 136 function get_user_dataset() {137 global $wpdb, $bp;138 139 return $wpdb->get_results( $wpdb->prepare( "SELECT user_id, is_admin, inviter_id, user_title, is_mod FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_confirmed = 1 AND is_banned = 0 ORDER BY rand()", $this->id ) );140 }141 142 function get_administrators() {143 for ( $i = 0; $i < count($this->user_dataset); $i++ ) {144 if ( $this->user_dataset[$i]->is_admin )145 $admins[] = new BP_Groups_Member( $this->user_dataset[$i]->user_id, $this->id );146 }147 148 return $admins;149 }150 151 function get_random_members() {152 $total_randoms = ( $this->total_member_count > 5 ) ? 5 : $this->total_member_count;153 154 for ( $i = 0; $i < $total_randoms; $i++ ) {155 if ( !(int)$this->user_dataset[$i]->is_banned )156 $users[] = new BP_Groups_Member( $this->user_dataset[$i]->user_id, $this->id );157 }158 return $users;159 }160 161 function is_member() {162 global $bp;163 164 for ( $i = 0; $i < count($this->user_dataset); $i++ ) {165 if ( $this->user_dataset[$i]->user_id == $bp->loggedin_user->id ) {166 return true;167 }168 }169 170 return false;171 }172 173 120 function delete() { 174 121 global $wpdb, $bp;
Note: See TracChangeset
for help on using the changeset viewer.