Ticket #5350: 5350.patch
| File 5350.patch, 3.5 KB (added by , 12 years ago) |
|---|
-
bp-activity/bp-activity-cache.php
diff --git bp-activity/bp-activity-cache.php bp-activity/bp-activity-cache.php index 1fbd80b..eff3624 100644
function bp_activity_clear_meta_cache_for_activity( $activity_id ) { 53 53 } 54 54 } 55 55 } 56 57 /** 58 * Clear a cached activity item when that item is updated. 59 * 60 * @since 2.0 61 * 62 * @param BP_Activity_Activity $activity 63 */ 64 function bp_activity_clear_cache_for_activity( $activity ) { 65 wp_cache_delete( 'activity_' . $activity->id, 'bp' ); 66 } 67 add_action( 'bp_activity_after_save', 'bp_activity_clear_cache_for_activity' ); 68 69 /** 70 * Clear cached data for deleted activity items. 71 * 72 * @since 2.0 73 * 74 * @param array $deleted_ids IDs of deleted activity items. 75 */ 76 function bp_activity_clear_cache_for_deleted_activity( $deleted_ids ) { 77 foreach ( (array) $deleted_ids as $deleted_id ) { 78 wp_cache_delete( 'activity_' . $deleted_id, 'bp' ); 79 } 80 } 81 add_action( 'bp_activity_deleted_activities', 'bp_activity_clear_cache_for_deleted_activity' ); -
bp-activity/bp-activity-classes.php
diff --git bp-activity/bp-activity-classes.php bp-activity/bp-activity-classes.php index 016c8dd..3131493 100644
class BP_Activity_Activity { 137 137 public function populate() { 138 138 global $wpdb, $bp; 139 139 140 if ( $row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE id = %d", $this->id ) ) ) { 140 $row = wp_cache_get( 'activity_' . $this->id, 'bp' ); 141 142 if ( false === $row ) { 143 $row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE id = %d", $this->id ) ); 144 } 145 146 if ( ! empty( $row ) ) { 141 147 $this->id = $row->id; 142 148 $this->item_id = $row->item_id; 143 149 $this->secondary_item_id = $row->secondary_item_id; … … class BP_Activity_Activity { 476 482 // Get BuddyPress 477 483 $bp = buddypress(); 478 484 479 // Format the activity ID's for use in the query below 480 $activity_ids_sql = implode( ',', wp_parse_id_list( $activity_ids ) ); 485 $activities = array(); 486 $query_aids = array(); 487 488 foreach ( $activity_ids as $activity_id ) { 489 490 // If cached data is found, use it 491 if ( $activity_data = wp_cache_get( 'activity_' . $activity_id, 'bp' ) ) { 492 $activities[ $activity_id ] = $activity_data; 493 494 // Otherwise leave a placeholder so we don't lose the order 495 } else { 496 $activities[ $activity_id ] = ''; 497 498 // Add to the list to be queried 499 $query_aids[] = $activity_id; 500 } 501 } 502 503 // Fetch activity data from the DB if necessary 504 if ( ! empty( $query_aids ) ) { 505 // Format the activity ID's for use in the query below 506 $query_aids_sql = implode( ',', wp_parse_id_list( $query_aids ) ); 507 508 // Fetch data from activity table, preserving order 509 $queried_adata = $wpdb->get_results( "SELECT * FROM {$bp->activity->table_name} WHERE id IN ({$query_aids_sql}) ORDER BY FIELD( id, {$query_aids_sql} )"); 510 511 // Put that data into the placeholders created earlier, 512 // and add it to the cache 513 foreach ( (array) $queried_adata as $adata ) { 514 $activities[ $adata->id ] = $adata; 515 wp_cache_set( 'activity_' . $adata->id, $adata, 'bp' ); 516 } 517 } 481 518 482 // First fetch data from activity table, preserving order483 $activities = $wpdb->get_results( "SELECT * FROM {$bp->activity->table_name} WHERE id IN ({$activity_ids_sql}) ORDER BY FIELD( id, {$activity_ids_sql} )");519 // Reset indexes 520 $activities = array_values( $activities ); 484 521 485 522 // Then fetch user data 486 523 $user_query = new BP_User_Query( array(
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)