Skip to:
Content

BuddyPress.org

Ticket #6169: 6169.02.patch

File 6169.02.patch, 9.6 KB (added by r-a-y, 11 years ago)
  • src/bp-activity/bp-activity-filters.php

     
    651651 * @return array
    652652 */
    653653function bp_activity_filter_just_me_scope( $retval, $filter ) {
    654         $retval = array(
    655                 'column' => 'user_id',
    656                 'value'  => $filter['user_id']
    657         );
    658 
    659         $retval['override']['display_comments'] = 'stream';
     654        if ( ! empty( $filter['user_id'] ) ) {
     655                $user_id = $filter['user_id'];
     656        } else {
     657                $user_id = bp_displayed_user_id() ? bp_displayed_user_id() : bp_loggedin_user_id();
     658        }
    660659
    661         // wipe out the user ID
    662         $retval['override']['filter']['user_id'] = 0;
     660        // Should we show all items regardless of sitewide visibility?
     661        $show_hidden = array();
     662        if ( ! empty( $user_id ) && $user_id !== bp_loggedin_user_id() ) {
     663                $show_hidden = array(
     664                        'column' => 'hide_sitewide',
     665                        'value'  => 0
     666                );
     667        }
    663668
    664         return $retval;
     669        return array(
     670                'relation' => 'AND',
     671                array(
     672                        'column' => 'user_id',
     673                        'value'  => $filter['user_id']
     674                ),
     675                $show_hidden,
     676
     677                // overrides
     678                'override' => array(
     679                        'display_comments' => 'stream',
     680                        'filter'           => array( 'user_id' => 0 ),
     681                        'show_hidden'      => true
     682                ),
     683        );
    665684}
    666685add_filter( 'bp_activity_set_just-me_scope_args', 'bp_activity_filter_just_me_scope', 10, 2 );
    667686
     
    675694 * @return array
    676695 */
    677696function bp_activity_filter_favorites_scope( $retval, $filter ) {
    678         $favs = bp_activity_get_user_favorites( $filter['user_id'] );
     697        if ( ! empty( $filter['user_id'] ) ) {
     698                $user_id = $filter['user_id'];
     699        } else {
     700                $user_id = bp_displayed_user_id() ? bp_displayed_user_id() : bp_loggedin_user_id();
     701        }
     702
     703        $favs = bp_activity_get_user_favorites( $user_id );
    679704        if ( empty( $favs ) ) {
    680705                $favs = array( 0 );
    681706        }
    682707
    683         $retval = array(
    684                 'column'  => 'id',
    685                 'compare' => 'IN',
    686                 'value'   => (array) $favs
    687         );
    688         $retval['override']['display_comments']  = true;
    689 
    690         // wipe out the user ID
    691         $retval['override']['filter']['user_id'] = 0;
     708        // Should we show all items regardless of sitewide visibility?
     709        $show_hidden = array();
     710        if ( ! empty( $user_id ) && $user_id !== bp_loggedin_user_id() ) {
     711                $show_hidden = array(
     712                        'column' => 'hide_sitewide',
     713                        'value'  => 0
     714                );
     715        }
    692716
    693         return $retval;
     717        return array(
     718                'relation' => 'AND',
     719                array(
     720                        'column'  => 'id',
     721                        'compare' => 'IN',
     722                        'value'   => (array) $favs
     723                ),
     724                $show_hidden,
     725
     726                // overrides
     727                'override' => array(
     728                        'display_comments' => true,
     729                        'filter'           => array( 'user_id' => 0 ),
     730                        'show_hidden'      => true
     731                ),
     732        );
    694733}
    695734add_filter( 'bp_activity_set_favorites_scope_args', 'bp_activity_filter_favorites_scope', 10, 2 );
    696735
     
    710749                return $retval;
    711750        }
    712751
    713         $retval = array(
    714                 'column'  => 'content',
    715                 'compare' => 'LIKE',
    716 
    717                 // Start search at @ symbol and stop search at closing tag delimiter.
    718                 'value'   => '@' . bp_activity_get_user_mentionname( $filter['user_id'] ) . '<'
    719         );
    720 
    721         // wipe out current search terms if any
    722         // this is so the 'mentions' scope can be combined with other scopes
    723         $retval['override']['search_terms'] = false;
     752        if ( ! empty( $filter['user_id'] ) ) {
     753                $user_id = $filter['user_id'];
     754        } else {
     755                $user_id = bp_displayed_user_id() ? bp_displayed_user_id() : bp_loggedin_user_id();
     756        }
    724757
    725         $retval['override']['display_comments'] = 'stream';
    726         $retval['override']['filter']['user_id'] = 0;
     758        // Should we show all items regardless of sitewide visibility?
     759        $show_hidden = array();
     760        if ( ! empty( $user_id ) && $user_id !== bp_loggedin_user_id() ) {
     761                $show_hidden = array(
     762                        'column' => 'hide_sitewide',
     763                        'value'  => 0
     764                );
     765        }
    727766
    728         return $retval;
     767        return array(
     768                'relation' => 'AND',
     769                array(
     770                        'column'  => 'content',
     771                        'compare' => 'LIKE',
     772
     773                        // Start search at @ symbol and stop search at closing tag delimiter.
     774                        'value'   => '@' . bp_activity_get_user_mentionname( $user_id ) . '<'
     775                ),
     776                $show_hidden,
     777
     778                // overrides
     779                'override' => array(
     780                        // wipe out current search terms if any
     781                        // this is so the 'mentions' scope can be combined with other scopes
     782                        'search_terms' => false,
     783
     784                        'display_comments' => 'stream',
     785                        'filter'           => array( 'user_id' => 0 ),
     786                        'show_hidden'      => true
     787                ),
     788        );
    729789}
    730790add_filter( 'bp_activity_set_mentions_scope_args', 'bp_activity_filter_mentions_scope', 10, 2 );
  • src/bp-activity/bp-activity-template.php

     
    622622        if ( empty( $search_terms ) && ! empty( $_REQUEST['s'] ) )
    623623                $search_terms = $_REQUEST['s'];
    624624
    625         // Set some default arguments when using a scope
    626         if ( ! empty( $scope ) ) {
    627                 // Determine which user ID applies
    628                 if ( empty( $user_id ) ) {
    629                         $user_id = bp_displayed_user_id() ? bp_displayed_user_id() : bp_loggedin_user_id();
    630                 }
    631 
    632                 // Should we show all items regardless of sitewide visibility?
    633                 if ( ! empty( $user_id ) ) {
    634                         $show_hidden = ( $user_id == bp_loggedin_user_id() ) ? 1 : 0;
    635                 }
    636         }
    637 
    638625        // Do not exceed the maximum per page
    639626        if ( !empty( $max ) && ( (int) $per_page > (int) $max ) )
    640627                $per_page = $max;
  • src/bp-friends/bp-friends-activity.php

     
    239239 * @return array
    240240 */
    241241function bp_friends_filter_activity_scope( $retval, $filter ) {
    242         $friends = friends_get_friend_user_ids( $filter['user_id'] );
     242        if ( ! empty( $filter['user_id'] ) ) {
     243                $user_id = $filter['user_id'];
     244        } else {
     245                $user_id = bp_displayed_user_id() ? bp_displayed_user_id() : bp_loggedin_user_id();
     246        }
     247
     248        $friends = friends_get_friend_user_ids( $user_id );
    243249
    244250        if ( empty( $friends ) ) {
    245251                $friends = array( 0 );
    246252        }
    247253
    248         $retval= array(
     254        return array(
    249255                'relation' => 'AND',
    250256                array(
    251257                        'column'  => 'user_id',
     
    257263                        'column' => 'hide_sitewide',
    258264                        'value'  => 0
    259265                ),
    260         );
    261 
    262         // wipe out the user ID
    263         $retval['override']['filter']['user_id'] = 0;
    264 
    265         // make sure we aren't limiting items by 'hide_sitewide' since we're already
    266         // limiting it above
    267         $retval['override']['show_hidden'] = true;
    268266
    269         return $retval;
     267                // overrides
     268                'override' => array(
     269                        'filter'      => array( 'user_id' => 0 ),
     270                        'show_hidden' => true
     271                ),
     272        );
    270273}
    271274add_filter( 'bp_activity_set_friends_scope_args', 'bp_friends_filter_activity_scope', 10, 2 );
    272275
     
    282285 * @return array
    283286 */
    284287function bp_friends_filter_activity_just_me_scope( $retval, $filter ) {
     288        if ( ! empty( $filter['user_id'] ) ) {
     289                $user_id = $filter['user_id'];
     290        } else {
     291                $user_id = bp_displayed_user_id() ? bp_displayed_user_id() : bp_loggedin_user_id();
     292        }
     293
    285294        // Get the requested action
    286295        $action = $filter['filter']['action'];
    287296
     
    300309                return $retval;
    301310        }
    302311
     312        // Save existing override value
     313        $override = array();
     314        if ( ! empty( $retval['override'] ) ) {
     315                $override = $retval['override'];
     316                unset( $retval['override'] );
     317        }
     318
    303319        /**
    304320         * Else make sure to get the friendship_created action, the user is involved in
    305321         * - user initiated the friendship
    306322         * - user has been requested a friendship
    307323         */
    308         return array(
     324        $retval = array(
    309325                'relation' => 'OR',
    310                 array(
    311                         'column' => 'user_id',
    312                         'value'  => $filter['user_id']
    313                 ),
     326                $retval,
    314327                array(
    315328                        'relation' => 'AND',
    316329                        array(
     
    319332                        ),
    320333                        array(
    321334                                'column' => 'secondary_item_id',
    322                                 'value'  => $filter['user_id'],
     335                                'value'  => $user_id,
    323336                        ),
    324                 ),
    325                 'override' => array(
    326                         'display_comments' => 'stream',
    327                         'filter'           => array( 'user_id' => 0 ),
    328                 ),
     337                )
    329338        );
     339
     340        // Add back override value
     341        if ( ! empty( $override ) ) {
     342                $retval['override'] = $override;
     343        }
     344
     345        return $retval;
    330346}
    331347add_filter( 'bp_activity_set_just-me_scope_args', 'bp_friends_filter_activity_just_me_scope', 20, 2 );
    332348
  • src/bp-groups/bp-groups-activity.php

     
    243243 * @return array
    244244 */
    245245function bp_groups_filter_activity_scope( $retval, $filter ) {
    246         $groups = groups_get_user_groups( $filter['user_id'] );
     246        if ( ! empty( $filter['user_id'] ) ) {
     247                $user_id = $filter['user_id'];
     248        } else {
     249                $user_id = bp_displayed_user_id() ? bp_displayed_user_id() : bp_loggedin_user_id();
     250        }
    247251
     252        $groups = groups_get_user_groups( $user_id );
    248253        if ( empty( $groups['groups'] ) ) {
    249254                $groups = array( 'groups' => 0 );
    250255        }
    251256
    252         $retval= array(
     257        // Should we show all items regardless of sitewide visibility?
     258        $show_hidden = array();
     259        if ( ! empty( $user_id ) && $user_id !== bp_loggedin_user_id() ) {
     260                $show_hidden = array(
     261                        'column' => 'hide_sitewide',
     262                        'value'  => 0
     263                );
     264        }
     265
     266        return array(
    253267                'relation' => 'AND',
    254268                array(
    255                         'column' => 'component',
    256                         'value'  => buddypress()->groups->id
     269                        'relation' => 'AND',
     270                        array(
     271                                'column' => 'component',
     272                                'value'  => buddypress()->groups->id
     273                        ),
     274                        array(
     275                                'column'  => 'item_id',
     276                                'compare' => 'IN',
     277                                'value'   => (array) $groups['groups']
     278                        ),
    257279                ),
    258                 array(
    259                         'column'  => 'item_id',
    260                         'compare' => 'IN',
    261                         'value'   => (array) $groups['groups']
     280                $show_hidden,
     281
     282                // overrides
     283                'override' => array(
     284                        'filter'      => array( 'user_id' => 0 ),
     285                        'show_hidden' => true
    262286                ),
    263287        );
    264 
    265         // wipe out the user ID
    266         $retval['override']['filter']['user_id'] = 0;
    267 
    268         return $retval;
    269288}
    270289add_filter( 'bp_activity_set_groups_scope_args', 'bp_groups_filter_activity_scope', 10, 2 );
    271290