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
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
| 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.