# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: \\UBU\www\sandbox\public_html\wp-content\plugins\buddypress\bp-activity
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: bp-activity-classes.php
--- bp-activity-classes.php Base (BASE)
+++ bp-activity-classes.php Locally Modified (Based On LOCAL)
@@ -156,12 +156,15 @@
 		if ( $filter )
 			$filter_sql = BP_Activity_Activity::get_filter_sql( $filter );
 
+		/* Skip disabled components */
+		$disabled_components_sql = BP_Activity_Activity::get_disabled_components_sql();
+
 		if ( $limit && $page && $max_items )
-			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE user_id = %d $filter_sql ORDER BY date_recorded DESC $pag_sql", $user_id ) );
+			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE user_id = %d $filter_sql $disabled_components_sql ORDER BY date_recorded DESC $pag_sql", $user_id ) );
 		else
-			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE user_id = %d $filter_sql ORDER BY date_recorded DESC $pag_sql $max_sql", $user_id ) );
+			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE user_id = %d $filter_sql $disabled_components_sql ORDER BY date_recorded DESC $pag_sql $max_sql", $user_id ) );
 
-		$total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->activity->table_name} WHERE user_id = %d $filter_sql ORDER BY date_recorded DESC $max_sql", $user_id ) );
+		$total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->activity->table_name} WHERE user_id = %d $filter_sql $disabled_components_sql ORDER BY date_recorded DESC $max_sql", $user_id ) );
 
 		return array( 'activities' => $activities, 'total' => (int)$total_activities );
 	}
@@ -184,6 +187,9 @@
 		if ( $filter )
 			$filter_sql = BP_Activity_Activity::get_filter_sql( $filter );
 
+		/* Skip disabled components */
+		$disabled_components_sql = BP_Activity_Activity::get_disabled_components_sql();
+
 		$friend_ids = friends_get_friend_user_ids( $user_id );
 
 		if ( !$friend_ids )
@@ -192,11 +198,11 @@
 		$friend_ids = implode( ',', $friend_ids );
 
 		if ( $limit && $page && $max_items )
-			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT id, user_id, content, primary_link, date_recorded, component_name, component_action FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) $filter_sql ORDER BY date_recorded DESC $pag_sql"  ) );
+			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT id, user_id, content, primary_link, date_recorded, component_name, component_action FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) $filter_sql $disabled_components_sql ORDER BY date_recorded DESC $pag_sql"  ) );
 		else
-			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT id, user_id, content, primary_link, date_recorded, component_name, component_action FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) $filter_sql ORDER BY date_recorded DESC $pag_sql $max_sql" ) );
+			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT id, user_id, content, primary_link, date_recorded, component_name, component_action FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) $filter_sql $disabled_components_sql ORDER BY date_recorded DESC $pag_sql $max_sql" ) );
 
-		$total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT count(user_id) FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) $filter_sql ORDER BY date_recorded DESC $max_sql" ) );
+		$total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT count(user_id) FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) $filter_sql $disabled_components_sql ORDER BY date_recorded DESC $max_sql" ) );
 
 		return array( 'activities' => $activities, 'total' => (int)$total_activities );
 	}
@@ -214,12 +220,15 @@
 		if ( $filter )
 			$filter_sql = BP_Activity_Activity::get_filter_sql( $filter );
 
+		/* Skip disabled components */
+		$disabled_components_sql = BP_Activity_Activity::get_disabled_components_sql();
+
 		if ( $limit && $page && $max )
-			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 $filter_sql ORDER BY date_recorded DESC $pag_sql" ) );
+			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 $filter_sql $disabled_components_sql ORDER BY date_recorded DESC $pag_sql" ) );
 		else
-			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 $filter_sql ORDER BY date_recorded DESC $pag_sql $max_sql" ) );
+			$activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 $filter_sql $disabled_components_sql ORDER BY date_recorded DESC $pag_sql $max_sql" ) );
 
-		$total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 $filter_sql ORDER BY date_recorded DESC $max_sql" ) );
+		$total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 $filter_sql $disabled_components_sql ORDER BY date_recorded DESC $max_sql" ) );
 
 		return array( 'activities' => $activities, 'total' => (int)$total_activities );
 	}
@@ -320,6 +329,42 @@
 		return $object_sql . $action_sql . $pid_sql . $sid_sql;
 	}
 
+	function get_disabled_components_sql () {
+		global $bp, $wpdb;
+		
+		// statement is null by default
+		$disabled = array();
+		
+		// are blogs disabled?
+		if ( !isset( $bp->active_components['blogs'] ) )
+			$disabled[] = 'blogs';
+
+		// are relationships disabled?
+		if ( !isset( $bp->active_components['friends'] ) )
+			$disabled[] = 'friends';
+
+		// are groups disabled?
+		if ( !isset( $bp->active_components['groups'] ) )
+			$disabled[] = 'groups';
+
+		// any plugins need to append to this?
+		$disabled = apply_filters( 'bp_activity_get_disabled_components', $disabled );
+
+		if ( !empty( $disabled ) ) {
+
+			$statements = array();
+
+			foreach ( $disabled as $component ) {
+				$statements[] = $wpdb->prepare( "component_name != %s", $component );
+			}
+
+			return 'AND ' . join( ' AND ', $statements );
+			
+		} else {
+			return null;
+		}
+	}
+
\ No newline at end of file
 	function get_last_updated() {
 		global $bp, $wpdb;
 
