BP_Document_Folder_Template::__construct( array $args )
Constructor method.
Description
The arguments passed to this class constructor are of the same format as BP_Document_Folder::get().
See also
- BP_Document_Folder::get(): for a description of the argument structure, as well as default values.
Parameters
- $args
-
(Required) Array of arguments. Supports all arguments from BP_Document_Folder::get(), as well as 'page_arg' and 'include'. Default values for 'per_page' differ from the originating function, and are described below
Source
File: bp-document/classes/class-bp-document-folder-template.php
public function __construct( $args ) {
$defaults = array(
'page' => 1,
'per_page' => 20,
'page_arg' => 'acpage',
'max' => false,
'user_id' => false,
'fields' => 'all',
'count_total' => false,
'sort' => false,
'include' => false,
'exclude' => false,
'privacy' => false,
'search_terms' => false,
);
$r = wp_parse_args( $args, $defaults );
extract( $r );
$this->pag_arg = sanitize_key( $r['page_arg'] );
$this->pag_page = bp_sanitize_pagination_arg( $this->pag_arg, $r['page'] );
$this->pag_num = bp_sanitize_pagination_arg( 'num', $r['per_page'] );
// Get an array of the logged in user's favorite folder.
$this->my_favs = bp_get_user_meta( bp_loggedin_user_id(), 'bp_favorite_folder', true );
// Fetch specific folder items based on ID's.
if ( ! empty( $include ) ) {
$this->folders = bp_folder_get_specific(
array(
'folder_ids' => explode( ',', $include ),
'max' => $max,
'count_total' => $count_total,
'page' => $this->pag_page,
'per_page' => $this->pag_num,
'sort' => $sort,
'user_id' => $user_id,
)
);
// Fetch all folder.
} else {
$this->folders = bp_folder_get(
array(
'max' => $max,
'count_total' => $count_total,
'per_page' => $this->pag_num,
'page' => $this->pag_page,
'sort' => $sort,
'search_terms' => $search_terms,
'user_id' => $user_id,
'group_id' => $group_id,
'exclude' => $exclude,
'privacy' => $privacy,
)
);
}
// The total_folder_count property will be set only if a
// 'count_total' query has taken place.
if ( ! is_null( $this->folders['total'] ) ) {
if ( ! $max || $max >= (int) $this->folders['total'] ) {
$this->total_folder_count = (int) $this->folders['total'];
} else {
$this->total_folder_count = (int) $max;
}
}
$this->has_more_items = $this->folders['has_more_items'];
$this->folders = $this->folders['folders'];
if ( $max ) {
if ( $max >= count( $this->folders ) ) {
$this->folder_count = count( $this->folders );
} else {
$this->folder_count = (int) $max;
}
} else {
$this->folder_count = count( $this->folders );
}
if ( (int) $this->total_folder_count && (int) $this->pag_num ) {
$this->pag_links = paginate_links(
array(
'base' => add_query_arg( $this->pag_arg, '%#%' ),
'format' => '',
'total' => ceil( (int) $this->total_folder_count / (int) $this->pag_num ),
'current' => (int) $this->pag_page,
'prev_text' => __( '←', 'buddyboss' ),
'next_text' => __( '→', 'buddyboss' ),
'mid_size' => 1,
'add_args' => array(),
)
);
}
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.4.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.