bp_nouveau_activity_scope_newest_class( $classes = '' )

Add class to newest activities by type.

Description

Source

File: bp-templates/bp-nouveau/includes/activity/functions.php

427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
function bp_nouveau_activity_scope_newest_class( $classes = '' ) {
    if ( ! is_user_logged_in() ) {
        return $classes;
    }
 
    $user_id    = bp_loggedin_user_id();
    $my_classes = array();
 
    /*
     * HeartBeat requests will transport the scope.
     * See bp_nouveau_ajax_querystring().
     */
    $scope = '';
 
    if ( ! empty( $_POST['data']['bp_heartbeat']['scope'] ) ) {
        $scope = sanitize_key( $_POST['data']['bp_heartbeat']['scope'] );
    }
 
    // Add specific classes to perform specific actions on the client side.
    if ( $scope && bp_is_activity_directory() ) {
        $component = bp_get_activity_object_name();
 
        /*
         * These classes will be used to count the number of newest activities for
         * the 'Mentions', 'My Groups' & 'My Connections' tabs
         */
        if ( 'all' === $scope ) {
            if ( 'groups' === $component && bp_is_active( $component ) ) {
                // Is the current user a member of the group the activity is attached to?
                if ( groups_is_user_member( $user_id, bp_get_activity_item_id() ) ) {
                    $my_classes[] = 'bp-my-groups';
                }
            }
 
            // Connections can post in groups the user is a member of
            if ( bp_is_active( 'friends' ) && (int) $user_id !== (int) bp_get_activity_user_id() ) {
                if ( friends_check_friendship( $user_id, bp_get_activity_user_id() ) ) {
                    $my_classes[] = 'bp-my-friends';
                }
            }
 
            // A mention can be posted by a friend within a group
            if ( true === bp_activity_do_mentions() ) {
                $new_mentions = bp_get_user_meta( $user_id, 'bp_new_mentions', true );
 
                // The current activity is one of the new mentions
                if ( is_array( $new_mentions ) && in_array( bp_get_activity_id(), $new_mentions ) ) {
                    $my_classes[] = 'bp-my-mentions';
                }
            }
 
        /*
         * This class will be used to highlight the newest activities when
         * viewing the 'Mentions', 'My Groups' or the 'My Connections' tabs
         */
        } elseif ( 'friends' === $scope || 'groups' === $scope || 'mentions' === $scope ) {
            $my_classes[] = 'newest_' . $scope . '_activity';
        }
 
        // Leave other components do their specific stuff if needed.
        /**
         * Filters the classes to be applied to the newest activity item.
         *
         * Leave other components do their specific stuff if needed.
         *
         * @since BuddyPress 3.0.0
         *
         * @param array  $my_classes Array of classes to output to class attribute.
         * @param string $scope      Current scope for the activity type.
         */
        $my_classes = (array) apply_filters( 'bp_nouveau_activity_scope_newest_class', $my_classes, $scope );
 
        if ( ! empty( $my_classes ) ) {
            $classes .= ' ' . join( ' ', $my_classes );
        }
    }
 
    return $classes;
}

Changelog

Changelog
Version Description
BuddyPress 3.0.0 Introduced.

Questions?

We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.