Changeset 2533
- Timestamp:
- 02/02/2010 12:40:49 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-core/bp-core-classes.php
r2457 r2533 340 340 } 341 341 342 /* Fetch whether or not the user is a friend */ 343 if ( function_exists( 'friends_install' ) ) { 344 $friend_status = $wpdb->get_results( $wpdb->prepare( "SELECT initiator_user_id, friend_user_id, is_confirmed FROM {$bp->friends->table_name} WHERE (initiator_user_id = %d AND friend_user_id IN ( {$user_ids} ) ) OR (initiator_user_id IN ( {$user_ids} ) AND friend_user_id = %d )", $bp->loggedin_user->id, $bp->loggedin_user->id ) ); 345 for ( $i = 0; $i < count( $paged_users ); $i++ ) { 346 foreach ( $friend_status as $status ) { 347 if ( $status->initiator_user_id == $paged_users[$i]->id || $status->friend_user_id == $paged_users[$i]->id ) 348 $paged_users[$i]->is_friend = $status->is_confirmed; 349 } 350 } 351 } 352 353 if ( 'active' != $type ) { 354 $user_activity = $wpdb->get_results( "SELECT user_id as id, meta_value as last_activity FROM " . CUSTOM_USER_META_TABLE . " WHERE meta_key = 'last_activity' AND user_id IN ( {$user_ids} )" ); 355 for ( $i = 0; $i < count( $paged_users ); $i++ ) { 356 foreach ( $user_activity as $activity ) { 357 if ( $activity->id == $paged_users[$i]->id ) 358 $paged_users[$i]->last_activity = $activity->last_activity; 359 } 360 } 361 } 362 342 363 /* Fetch the user's last_activity */ 343 364 if ( 'active' != $type ) { -
trunk/bp-core/bp-core-templatetags.php
r2516 r2533 342 342 343 343 if ( function_exists( 'bp_add_friend_button' ) ) { 344 echo bp_add_friend_button( $members_template->member->id ); 344 if ( null === $members_template->member->is_friend ) 345 $friend_status = 'not_friends'; 346 else 347 $friend_status = ( 0 == $members_template->member->is_friend ) ? 'pending' : 'is_friend'; 348 349 echo bp_add_friend_button( $members_template->member->id, $friend_status ); 345 350 } 346 351 } -
trunk/bp-forums.php
r2431 r2533 334 334 } 335 335 336 function bp_forums_get_topic_extras( $topics ) { 337 global $bp, $wpdb, $bbdb; 338 339 if ( empty( $topics ) ) 340 return $topics; 341 342 /* Get the topic ids */ 343 foreach ( $topics as $topic ) $topic_ids[] = $topic->topic_id; 344 $topic_ids = $wpdb->escape( join( ',', (array)$topic_ids ) ); 345 346 /* Fetch the topic's last poster details */ 347 $poster_details = $wpdb->get_results( $wpdb->prepare( "SELECT t.topic_id, t.topic_last_poster, u.user_login, u.user_nicename, u.user_email, u.display_name FROM {$wpdb->users} u, {$bbdb->topics} t WHERE u.ID = t.topic_last_poster AND t.topic_id IN ( {$topic_ids} )" ) ); 348 for ( $i = 0; $i < count( $topics ); $i++ ) { 349 foreach ( $poster_details as $poster ) { 350 if ( $poster->topic_id == $topics[$i]->topic_id ) { 351 $topics[$i]->topic_last_poster_email = $poster->user_email; 352 $topics[$i]->topic_last_poster_nicename = $poster->user_nicename; 353 $topics[$i]->topic_last_poster_login = $poster->user_login; 354 $topics[$i]->topic_last_poster_displayname = $poster->display_name; 355 } 356 } 357 } 358 359 /* Fetch fullname for the topic's last poster */ 360 if ( function_exists( 'xprofile_install' ) ) { 361 $poster_names = $wpdb->get_results( $wpdb->prepare( "SELECT t.topic_id, pd.value FROM {$bp->profile->table_name_data} pd, {$bbdb->topics} t WHERE pd.user_id = t.topic_last_poster AND pd.field_id = 1 AND t.topic_id IN ( {$topic_ids} )" ) ); 362 for ( $i = 0; $i < count( $topics ); $i++ ) { 363 foreach ( $poster_names as $name ) { 364 if ( $name->topic_id == $topics[$i]->topic_id ) 365 $topics[$i]->topic_last_poster_displayname = $name->value; 366 } 367 } 368 } 369 370 return $topics; 371 } 372 336 373 /* Post Functions */ 337 374 -
trunk/bp-forums/bp-forums-templatetags.php
r2488 r2533 93 93 } 94 94 95 /* Fetch extra information for topics, so we don't have to query inside the loop */ 96 $this->topics = bp_forums_get_topic_extras( &$this->topics ); 97 95 98 $this->pag_links = paginate_links( array( 96 99 'base' => add_query_arg( array( 'p' => '%#%', 'n' => $this->pag_num ) ), … … 348 351 global $forum_template; 349 352 350 if ( !$ name = bp_core_get_userlink( $forum_template->topic->topic_last_poster) )353 if ( !$domain = bp_core_get_user_domain( $forum_template->topic->topic_last_poster, $forum_template->topic->topic_last_poster_nicename, $forum_template->topic->topic_last_poster_login ) ) 351 354 return __( 'Deleted User', 'buddypress' ); 352 355 353 return apply_filters( 'bp_get_the_topic_last_poster_name', $name);356 return apply_filters( 'bp_get_the_topic_last_poster_name', '<a href="' . $domain . '">' . $forum_template->topic->topic_last_poster_displayname . '</a>' ); 354 357 } 355 358 … … 387 390 extract( $r, EXTR_SKIP ); 388 391 389 return apply_filters( 'bp_get_the_topic_last_poster_avatar', bp_core_fetch_avatar( array( ' item_id' => $forum_template->topic->topic_last_poster, 'type' => $type, 'width' => $width, 'height' => $height ) ) );392 return apply_filters( 'bp_get_the_topic_last_poster_avatar', bp_core_fetch_avatar( array( 'email' => $forum_template->topic->topic_last_poster_email, 'item_id' => $forum_template->topic->topic_last_poster, 'type' => $type, 'width' => $width, 'height' => $height ) ) ); 390 393 } 391 394 -
trunk/bp-friends/bp-friends-templatetags.php
r2445 r2533 115 115 } 116 116 117 function bp_add_friend_button( $potential_friend_id = false ) {118 echo bp_get_add_friend_button( $potential_friend_id );119 } 120 function bp_get_add_friend_button( $potential_friend_id = false ) {117 function bp_add_friend_button( $potential_friend_id = false, $friend_status = false ) { 118 echo bp_get_add_friend_button( $potential_friend_id, $friend_status ); 119 } 120 function bp_get_add_friend_button( $potential_friend_id = false, $friend_status = false ) { 121 121 global $bp, $friends_template; 122 122 … … 132 132 return false; 133 133 134 $friend_status = friends_check_friendship_status( $bp->loggedin_user->id, $potential_friend_id ); 134 if ( empty( $friend_status ) ) 135 $friend_status = friends_check_friendship_status( $bp->loggedin_user->id, $potential_friend_id ); 135 136 136 137 $button = '<div class="generic-button friendship-button ' . $friend_status . '" id="friendship-button-' . $potential_friend_id . '">'; -
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 -
trunk/bp-groups/bp-groups-templatetags.php
r2496 r2533 1080 1080 $group =& $groups_template->group; 1081 1081 1082 if ( groups_is_user_member( $bp->loggedin_user->id, $group->id ))1083 return true;1084 1085 return false;1082 if ( null == $group->is_member ) 1083 return false; 1084 1085 return true; 1086 1086 } 1087 1087 … … 1168 1168 1169 1169 // If they're not logged in or are banned from the group, no join button. 1170 if ( !is_user_logged_in() || groups_is_user_banned( $bp->loggedin_user->id, $group->id ))1170 if ( !is_user_logged_in() || $group->is_banned ) 1171 1171 return false; 1172 1172 … … 1178 1178 switch ( $group->status ) { 1179 1179 case 'public': 1180 if ( BP_Groups_Member::check_is_member( $bp->loggedin_user->id, $group->id ))1180 if ( $group->is_member ) 1181 1181 echo '<a class="leave-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>'; 1182 1182 else … … 1185 1185 1186 1186 case 'private': 1187 if ( BP_Groups_Member::check_is_member( $bp->loggedin_user->id, $group->id )) {1187 if ( $group->is_member ) { 1188 1188 echo '<a class="leave-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>'; 1189 1189 } else { -
trunk/bp-themes/bp-default/_inc/global.js
r2519 r2533 797 797 /** Alternate Highlighting ******************************************/ 798 798 799 j('table tr').each( function(i) { 800 if ( i % 2 == 1 ) 801 j(this).addClass('alt'); 802 }); 803 804 j('div.message-box, ul#topic-post-list li').each( function(i) { 799 j('table tr, div.message-box, ul#topic-post-list li').each( function(i) { 805 800 if ( i % 2 != 1 ) 806 801 j(this).addClass('alt');
Note: See TracChangeset
for help on using the changeset viewer.