Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
06/26/2009 09:54:22 PM (17 years ago)
Author:
apeatling
Message:

Committing basic activity stream filter support to sitewide activity widget.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-activity/bp-activity-classes.php

    r1586 r1587  
    149149    }
    150150   
    151     function get_activity_for_user( $user_id, $max_items, $since, $limit, $page ) {
     151    function get_activity_for_user( $user_id, $max_items, $since, $limit, $page, $filter ) {
    152152        global $wpdb, $bp;
    153153
     
    160160            $max_sql = $wpdb->prepare( "LIMIT %d", $max );
    161161       
     162        if ( $filter )
     163            $filter_sql = $wpdb->prepare( "AND component_name = %s", $filter );
     164       
    162165        if ( $limit && $page && $max )
    163             $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE user_id = %d AND date_recorded >= FROM_UNIXTIME(%d) $privacy_sql ORDER BY date_recorded DESC $pag_sql", $user_id, $since ) );
     166            $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE user_id = %d AND date_recorded >= FROM_UNIXTIME(%d) $privacy_sql $filter_sql ORDER BY date_recorded DESC $pag_sql", $user_id, $since ) );
    164167        else
    165             $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE user_id = %d AND date_recorded >= FROM_UNIXTIME(%d) $privacy_sql ORDER BY date_recorded DESC $pag_sql $max_sql", $user_id, $since ) );
    166    
    167         $total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->activity->table_name} WHERE user_id = %d AND date_recorded >= FROM_UNIXTIME(%d) $privacy_sql ORDER BY date_recorded DESC $max_sql", $user_id, $since ) );
     168            $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE user_id = %d AND date_recorded >= FROM_UNIXTIME(%d) $privacy_sql $filter_sql ORDER BY date_recorded DESC $pag_sql $max_sql", $user_id, $since ) );
     169   
     170        $total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->activity->table_name} WHERE user_id = %d AND date_recorded >= FROM_UNIXTIME(%d) $privacy_sql $filter_sql ORDER BY date_recorded DESC $max_sql", $user_id, $since ) );
    168171
    169172        for ( $i = 0; $i < count( $activities ); $i++ ) {
     
    178181    }
    179182   
    180     function get_activity_for_friends( $user_id, $max_items, $since, $max_items_per_friend, $limit, $page ) {
     183    function get_activity_for_friends( $user_id, $max_items, $since, $max_items_per_friend, $limit, $page, $filter ) {
    181184        global $wpdb, $bp;
    182185       
     
    191194        if ( $max )
    192195            $max_sql = $wpdb->prepare( "LIMIT %d", $max );
    193            
     196
     197        if ( $filter )
     198            $filter_sql = $wpdb->prepare( "AND component_name = %s", $filter );
     199                       
    194200        $since = strtotime($since);
    195201
     
    202208       
    203209        if ( $limit && $page && $max )
    204             $activities = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT user_id, content, primary_link, date_recorded, component_name, component_action FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) AND date_recorded >= FROM_UNIXTIME(%d) ORDER BY date_recorded DESC $pag_sql", $since ) );
     210            $activities = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT user_id, content, primary_link, date_recorded, component_name, component_action FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) AND date_recorded >= FROM_UNIXTIME(%d) $filter_sql ORDER BY date_recorded DESC $pag_sql", $since ) );
    205211        else
    206             $activities = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT user_id, content, primary_link, date_recorded, component_name, component_action FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) AND date_recorded >= FROM_UNIXTIME(%d) ORDER BY date_recorded DESC $pag_sql $max_sql", $since ) );             
    207        
    208         $total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT count(user_id) FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) AND date_recorded >= FROM_UNIXTIME(%d) ORDER BY date_recorded DESC $max_sql", $since ) );
     212            $activities = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT user_id, content, primary_link, date_recorded, component_name, component_action FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) AND date_recorded >= FROM_UNIXTIME(%d) $filter_sql ORDER BY date_recorded DESC $pag_sql $max_sql", $since ) );             
     213       
     214        $total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT count(user_id) FROM {$bp->activity->table_name} WHERE user_id IN ({$friend_ids}) AND date_recorded >= FROM_UNIXTIME(%d) $filter_sql ORDER BY date_recorded DESC $max_sql", $since ) );
    209215       
    210216        return array( 'activities' => $activities, 'total' => (int)$total_activities );
    211217    }
    212218   
    213     function get_sitewide_activity( $max, $limit, $page ) {
     219    function get_sitewide_activity( $max, $limit, $page, $filter ) {
    214220        global $wpdb, $bp;
    215221       
     
    219225        if ( $max )
    220226            $max_sql = $wpdb->prepare( "LIMIT %d", $max );
    221        
     227
     228        if ( $filter )
     229            $filter_sql = $wpdb->prepare( "AND component_name = %s", $filter );
     230
    222231        if ( $limit && $page && $max )
    223             $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 ORDER BY date_recorded DESC $pag_sql" ) );
     232            $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" ) );
    224233        else
    225             $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 ORDER BY date_recorded DESC $pag_sql $max_sql" ) );
    226 
    227         $total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 ORDER BY date_recorded DESC $max_sql" ) );
    228        
     234            $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" ) );
     235
     236        $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" ) );
     237
    229238        for ( $i = 0; $i < count( $activities ); $i++ ) {
    230239            $activities_formatted[$i]['content'] = $activities[$i]->content;
     
    238247    }
    239248   
     249    function get_recorded_component_names() {
     250        global $wpdb, $bp;
     251       
     252        return $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT component_name FROM {$bp->activity->table_name} ORDER BY component_name ASC" ) );
     253    }
     254   
    240255    function get_sitewide_items_for_feed( $limit = 35 ) {
    241256        global $wpdb, $bp;
Note: See TracChangeset for help on using the changeset viewer.