bp_members_filter_folder_public_scope( array $retval = array(), array $filter = array() )
Set up document arguments for use with the ‘public’ scope.
Description
Parameters
- $retval
-
(Optional) Empty array by default.
Default value: array()
- $filter
-
(Optional) Current activity arguments.
Default value: array()
Return
(array)
Source
File: bp-document/bp-document-filters.php
function bp_members_filter_folder_public_scope( $retval = array(), $filter = array() ) {
// Determine the user_id.
if ( ! empty( $filter['user_id'] ) ) {
$user_id = $filter['user_id'];
} else {
$user_id = bp_displayed_user_id()
? bp_displayed_user_id()
: bp_loggedin_user_id();
}
$folder_id = 0;
$folders = array();
if ( ! empty( $filter['folder_id'] ) ) {
$folder_id = (int) $filter['folder_id'];
}
if ( ! empty( $filter['search_terms'] ) ) {
if ( ! empty( $folder_id ) ) {
$folder_ids = array();
$user_root_folder_ids = bp_document_get_folder_children( (int) $folder_id );
if ( $user_root_folder_ids ) {
foreach ( $user_root_folder_ids as $single_folder ) {
$single_folder_ids = bp_document_get_folder_children( (int) $single_folder );
if ( $single_folder_ids ) {
array_merge( $folder_ids, $single_folder_ids );
}
array_push( $folder_ids, $single_folder );
}
}
$folder_ids[] = $folder_id;
$folders = array(
'column' => 'parent',
'compare' => 'IN',
'value' => $folder_ids,
);
}
} else {
$folders = array(
'column' => 'parent',
'compare' => '=',
'value' => '0',
);
}
$privacy = array( 'public' );
if ( is_user_logged_in() ) {
$privacy[] = 'loggedin';
}
$args = array(
'relation' => 'AND',
array(
'column' => 'privacy',
'compare' => 'IN',
'value' => $privacy
),
array(
'column' => 'group_id',
'compare' => '=',
'value' => '0',
),
$folders
);
if ( ! bp_is_profile_document_support_enabled() ) {
$args[] = array(
'column' => 'user_id',
'compare' => '=',
'value' => '0',
);
}
return $args;
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.4.4 | 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.