Changeset 2533 for trunk/bp-groups/bp-groups-classes.php
- Timestamp:
- 02/02/2010 12:40:49 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-groups/bp-groups-classes.php
r2431 r2533 48 48 $this->user_dataset = $this->get_user_dataset(); 49 49 50 //if ( !$this->total_member_count ) {51 50 $this->total_member_count = count( $this->user_dataset ); 52 51 groups_update_groupmeta( $this->id, 'total_member_count', $this->total_member_count ); 53 //}54 52 } 53 54 /* Get group extras */ 55 $this->is_member = BP_Groups_Member::check_is_member( $bp->loggedin_user->id, $this->id ); 55 56 } 56 57 } … … 336 337 } 337 338 339 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 340 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'newest' ); 341 338 342 return array( 'groups' => $paged_groups, 'total' => $total_groups ); 339 343 } … … 361 365 } 362 366 367 foreach ( $paged_groups as $group ) $group_ids[] = $group->id; 368 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 369 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'active' ); 370 363 371 return array( 'groups' => $paged_groups, 'total' => $total_groups ); 364 372 } … … 387 395 } 388 396 397 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 398 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'popular' ); 399 389 400 return array( 'groups' => $paged_groups, 'total' => $total_groups ); 390 401 } … … 412 423 } 413 424 425 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 426 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'alphabetical' ); 427 414 428 return array( 'groups' => $paged_groups, 'total' => $total_groups ); 415 429 } … … 441 455 } 442 456 457 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 458 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'most_forum_topics' ); 459 443 460 return array( 'groups' => $paged_groups, 'total' => $total_groups ); 444 461 } … … 469 486 $total_groups = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT g.id) FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_groupmeta} gm3, {$bbdb->forums} f, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND g.id = gm3.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' AND (gm3.meta_key = 'forum_id' AND gm3.meta_value = f.forum_id) {$hidden_sql} {$search_sql}" ) ); 470 487 } 488 489 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 490 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'most_forum_posts' ); 471 491 472 492 return array( 'groups' => $paged_groups, 'total' => $total_groups ); … … 535 555 $paged_groups = $wpdb->get_results( $wpdb->prepare( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' AND g.name LIKE '$letter%%' {$hidden_sql} {$search_sql} ORDER BY g.name ASC {$pag_sql}" ) ); 536 556 557 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 558 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'letter' ); 559 537 560 return array( 'groups' => $paged_groups, 'total' => $total_groups ); 538 561 } … … 560 583 } 561 584 562 return array( 'groups' => $paged_groups, 'total' => $total_groups ); 585 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 586 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'random' ); 587 588 return array( 'groups' => $paged_groups, 'total' => $total_groups ); 589 } 590 591 function get_group_extras( $paged_groups, $group_ids, $type = false ) { 592 global $bp, $wpdb; 593 594 if ( empty( $group_ids ) ) 595 return $paged_groups; 596 597 /* Fetch the logged in users status within each group */ 598 $user_status = $wpdb->get_col( $wpdb->prepare( "SELECT group_id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id IN ( {$group_ids} ) AND is_confirmed = 1 AND is_banned = 0", $bp->loggedin_user->id ) ); 599 for ( $i = 0; $i < count( $paged_groups ); $i++ ) { 600 foreach ( $user_status as $group_id ) { 601 if ( $group_id == $paged_groups[$i]->id ) 602 $paged_groups[$i]->is_member = true; 603 } 604 } 605 606 $user_banned = $wpdb->get_col( $wpdb->prepare( "SELECT group_id FROM {$bp->groups->table_name_members} WHERE is_banned = 1 AND user_id = %d AND group_id IN ( {$group_ids} )", $bp->loggedin_user->id ) ); 607 for ( $i = 0; $i < count( $paged_groups ); $i++ ) { 608 foreach ( $user_banned as $group_id ) { 609 if ( $group_id == $paged_groups[$i]->id ) 610 $paged_groups[$i]->is_banned = true; 611 } 612 } 613 614 return $paged_groups; 563 615 } 564 616
Note: See TracChangeset
for help on using the changeset viewer.