Skip to:
Content

BuddyPress.org

Ticket #2646: 2646.patch

File 2646.patch, 8.5 KB (added by boonebgorges, 15 years ago)
  • bp-activity.php

     
    494494
    495495                'search_terms' => false, // Pass search terms as a string
    496496                'show_hidden' => false, // Show activity items that are hidden site-wide?
     497                'exclude' => false, // Comma-separated list of activity IDs to exclude
    497498
    498499                /**
    499500                 * Pass filters as an array -- all filter items can be multiple values comma separated:
     
    512513        extract( $r, EXTR_SKIP );
    513514
    514515        /* Attempt to return a cached copy of the first page of sitewide activity. */
    515         if ( 1 == (int)$page && empty( $max ) && empty( $search_terms ) && empty( $filter ) && 'DESC' == $sort ) {
     516        if ( 1 == (int)$page && empty( $max ) && empty( $search_terms ) && empty( $filter ) && 'DESC' == $sort && empty( $exclude ) ) {
    516517                if ( !$activity = wp_cache_get( 'bp_activity_sitewide_front', 'bp' ) ) {
    517518                        $activity = BP_Activity_Activity::get( $max, $page, $per_page, $sort, $search_terms, $filter, $display_comments, $show_hidden );
    518519                        wp_cache_set( 'bp_activity_sitewide_front', $activity, 'bp' );
    519520                }
    520521        } else
    521                 $activity = BP_Activity_Activity::get( $max, $page, $per_page, $sort, $search_terms, $filter, $display_comments, $show_hidden );
     522                $activity = BP_Activity_Activity::get( $max, $page, $per_page, $sort, $search_terms, $filter, $display_comments, $show_hidden, $exclude );
    522523
    523524        return apply_filters( 'bp_activity_get', $activity, &$r );
    524525}
  • bp-activity/bp-activity-templatetags.php

     
    1515
    1616        var $full_name;
    1717
    18         function bp_activity_template( $page, $per_page, $max, $include, $sort, $filter, $search_terms, $display_comments, $show_hidden ) {
     18        function bp_activity_template( $page, $per_page, $max, $include, $sort, $filter, $search_terms, $display_comments, $show_hidden, $exclude ) {
    1919                global $bp;
    2020
    2121                $this->pag_page = isset( $_REQUEST['acpage'] ) ? intval( $_REQUEST['acpage'] ) : $page;
     
    3131                if ( !empty( $include ) )
    3232                        $this->activities = bp_activity_get_specific( array( 'activity_ids' => explode( ',', $include ), 'max' => $max, 'page' => $this->pag_page, 'per_page' => $this->pag_num, 'sort' => $sort, 'display_comments' => $display_comments ) );
    3333                else
    34                         $this->activities = bp_activity_get( array( 'display_comments' => $display_comments, 'max' => $max, 'per_page' => $this->pag_num, 'page' => $this->pag_page, 'sort' => $sort, 'search_terms' => $search_terms, 'filter' => $filter, 'show_hidden' => $show_hidden ) );
     34                        $this->activities = bp_activity_get( array( 'display_comments' => $display_comments, 'max' => $max, 'per_page' => $this->pag_num, 'page' => $this->pag_page, 'sort' => $sort, 'search_terms' => $search_terms, 'filter' => $filter, 'show_hidden' => $show_hidden, 'exclude' => $exclude ) );
    3535
    3636                if ( !$max || $max >= (int)$this->activities['total'] )
    3737                        $this->total_activity_count = (int)$this->activities['total'];
     
    141141         */
    142142        $user_id = false;
    143143        $include = false;
     144        $exclude = false;
    144145        $show_hidden = false;
    145146        $object = false;
    146147        $primary_id = false;
     
    165166        /* Note: any params used for filtering can be a single value, or multiple values comma separated. */
    166167        $defaults = array(
    167168                'display_comments' => 'threaded', // false for none, stream/threaded - show comments in the stream or threaded under items
    168                 'include' => $include, // pass an activity_id or string of ID's comma separated
     169                'include' => $include, // pass an activity_id or string of IDs comma-separated
     170                'exclude' => $exclude, // pass an activity_id or string of IDs comma-separated
    169171                'sort' => 'DESC', // sort DESC or ASC
    170172                'page' => 1, // which page to load
    171173                'per_page' => 20, // number of items per page
     
    253255        else if ( !empty( $user_id ) || !empty( $object ) || !empty( $action ) || !empty( $primary_id ) || !empty( $secondary_id ) )
    254256                $filter = array( 'user_id' => $user_id, 'object' => $object, 'action' => $action, 'primary_id' => $primary_id, 'secondary_id' => $secondary_id );
    255257
    256         $activities_template = new BP_Activity_Template( $page, $per_page, $max, $include, $sort, $filter, $search_terms, $display_comments, $show_hidden );
     258        $activities_template = new BP_Activity_Template( $page, $per_page, $max, $include, $sort, $filter, $search_terms, $display_comments, $show_hidden, $exclude );
    257259
    258260        return apply_filters( 'bp_has_activities', $activities_template->has_activities(), &$activities_template );
    259261}
  • bp-activity/bp-activity-classes.php

     
    6868                if ( !$this->primary_link )
    6969                        $this->primary_link = $bp->loggedin_user->domain;
    7070
    71                 /* If we have an existing ID, update the activity item, otherwise insert it. */
     71                // If we have an existing ID, update the activity item, otherwise insert it.
    7272                if ( $this->id )
    7373                        $q = $wpdb->prepare( "UPDATE {$bp->activity->table_name} SET user_id = %d, component = %s, type = %s, action = %s, content = %s, primary_link = %s, date_recorded = %s, item_id = %s, secondary_item_id = %s, hide_sitewide = %d WHERE id = %d", $this->user_id, $this->component, $this->type, $this->action, $this->content, $this->primary_link, $this->date_recorded, $this->item_id, $this->secondary_item_id, $this->hide_sitewide, $this->id );
    7474                else
     
    8484                return true;
    8585        }
    8686
    87         /* Static Functions */
     87        // Static Functions
    8888
    89         function get( $max = false, $page = 1, $per_page = 25, $sort = 'DESC', $search_terms = false, $filter = false, $display_comments = false, $show_hidden = false ) {
     89        function get( $max = false, $page = 1, $per_page = 25, $sort = 'DESC', $search_terms = false, $filter = false, $display_comments = false, $show_hidden = false, $exclude = false ) {
    9090                global $wpdb, $bp;
    9191
    92                 /* Select conditions */
     92                // Select conditions
    9393                $select_sql = "SELECT a.*, u.user_email, u.user_nicename, u.user_login, u.display_name";
    9494
    9595                $from_sql = " FROM {$bp->activity->table_name} a LEFT JOIN {$wpdb->users} u ON a.user_id = u.ID";
    9696
    97                 /* Where conditions */
     97                // Where conditions
    9898                $where_conditions = array();
    9999
    100                 /* Filtering */
     100                // Filtering
    101101                if ( $filter && $filter_sql = BP_Activity_Activity::get_filter_sql( $filter ) )
    102102                        $where_conditions['filter_sql'] = $filter_sql;
    103103
    104                 /* Sorting */
     104                // Sorting
    105105                if ( $sort != 'ASC' && $sort != 'DESC' )
    106106                        $sort = 'DESC';
    107107
    108                 /* Hide Hidden Items? */
     108                // Hide Hidden Items?
    109109                if ( !$show_hidden )
    110110                        $where_conditions['hidden_sql'] = "a.hide_sitewide = 0";
     111               
     112                // Exclude specified items
     113                if ( $exclude )
     114                        $where_conditions['exclude'] = "a.id NOT IN ({$exclude})";
    111115
    112                 /* Alter the query based on whether we want to show activity item comments in the stream like normal comments or threaded below the activity */
     116                // Alter the query based on whether we want
     117                // to show activity item comments in the stream
     118                // like normal comments or threaded below the activity
    113119                if ( !$display_comments || 'threaded' == $display_comments ) {
    114120                        $where_conditions[] = "a.type != 'activity_comment'";
    115121                }
    116122
    117123                $where_sql = 'WHERE ' . join( ' AND ', $where_conditions );
    118124
    119                 /* Searching */
     125                // Searching
    120126                if ( $search_terms ) {
    121127                        $search_terms = $wpdb->escape( $search_terms );
    122128
     
    136142
    137143                $total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(a.id) FROM {$bp->activity->table_name} a {$where_sql} ORDER BY a.date_recorded {$sort}" ) );
    138144
    139                 /* Get the fullnames of users so we don't have to query in the loop */
     145                // Get the fullnames of users so we don't have to query in the loop
    140146                if ( bp_is_active( 'xprofile' ) && $activities ) {
    141147                        foreach ( (array)$activities as $activity ) {
    142148                                if ( (int)$activity->user_id )
     
    163169                if ( $activities && $display_comments )
    164170                        $activities = BP_Activity_Activity::append_comments( &$activities );
    165171
    166                 /* If $max is set, only return up to the max results */
     172                // If $max is set, only return up to the max results
    167173                if ( !empty( $max ) ) {
    168174                        if ( (int)$total_activities > (int)$max )
    169175                                $total_activities = $max;
     
    195201                if ( $display_comments )
    196202                        $activities = BP_Activity_Activity::append_comments( $activities );
    197203
    198                 /* If $max is set, only return up to the max results */
     204                // If $max is set, only return up to the max results
    199205                if ( !empty( $max ) ) {
    200206                        if ( (int)$total_activities > (int)$max )
    201207                                $total_activities = $max;