bp_nouveau_get_loop_classes()
Get the component’s loop classes
Description
Return
(string) space separated value of classes.
Source
File: bp-templates/bp-nouveau/includes/template-tags.php
function bp_nouveau_get_loop_classes() {
$bp_nouveau = bp_nouveau();
// @todo: this function could do with passing args so we can pass simple strings in or array of strings
// The $component is faked if it's the single group member loop
if ( ! bp_is_directory() && ( bp_is_group() && 'members' === bp_current_action() ) ) {
$component = 'members_group';
} elseif ( ! bp_is_directory() && ( bp_is_user() && ( 'my-friends' === bp_current_action() || 'mutual' === bp_current_action() ) ) ) {
$component = 'members_friends';
} else {
$component = sanitize_key( bp_current_component() );
}
$classes = array(
'item-list',
sprintf( '%s-list', str_replace( '_', '-', $component ) ),
'bp-list',
);
if ( bp_is_user() && 'my-friends' === bp_current_action() ) {
$classes[] = 'members-list';
}
if ( bp_is_user() && 'requests' === bp_current_action() ) {
$classes[] = 'friends-request-list';
}
if ( bp_is_user() && 'mutual' === bp_current_action() ) {
$classes[] = 'friends-mutual-list';
}
$available_components = array(
'members' => true,
'groups' => true,
'blogs' => true,
/*
* Technically not a component but allows us to check the single group members loop as a seperate loop.
*/
'members_group' => true,
'members_friends' => true,
);
// Only the available components supports custom layouts.
if ( ! empty( $available_components[ $component ] ) && ( bp_is_directory() || bp_is_group() || bp_is_user() ) ) {
$customizer_option = sprintf( '%s_layout', $component );
$layout_prefs = bp_nouveau_get_temporary_setting(
$customizer_option,
bp_nouveau_get_appearance_settings( $customizer_option )
);
// check for layout options in browsers storage
$list = false;
if ( isset( $_POST['extras'] ) && ! empty( $_POST['extras']['layout'] ) && 'list' == $_POST['extras']['layout'] ) {
$list = true;
}
if ( $layout_prefs && (int) $layout_prefs > 1 ) {
$grid_classes = bp_nouveau_customizer_grid_choices( 'classes' );
if ( isset( $grid_classes[ $layout_prefs ] ) && ! $list ) {
$classes = array_merge( $classes, array(
'grid',
'four',/*Remove customizer number of columns in grid view*/
//$grid_classes[ $layout_prefs ],/*Remove customizer number of columns in grid view*/
) );
} else {
$classes = array_merge( $classes, array(
'four',/*Remove customizer number of columns in grid view*/
//$grid_classes[ $layout_prefs ],/*Remove customizer number of columns in grid view*/
) );
}
if ( ! isset( $bp_nouveau->{$component} ) ) {
$bp_nouveau->{$component} = new stdClass;
}
// Set the global for a later use.
$bp_nouveau->{$component}->loop_layout = $layout_prefs;
}
}
/**
* Filter to edit/add classes.
*
* NB: you can also directly add classes into the template parts.
*
* @since BuddyPress 3.0.0
*
* @param array $classes The list of classes.
* @param string $component The current component's loop.
*/
$class_list = (array) apply_filters( 'bp_nouveau_get_loop_classes', $classes, $component );
return join( ' ', array_map( 'sanitize_html_class', $class_list ) );
}
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.