BP_Messages_Box_Template::__construct( array $args = array() )
Constructor method.
Description
Parameters
- $args
-
(Optional) Array of arguments. See bp_has_message_threads() for full description.
Default value: array()
Source
File: bp-messages/classes/class-bp-messages-box-template.php
public function __construct( $args = array() ) {
// Backward compatibility with old method of passing arguments.
if ( ! is_array( $args ) || func_num_args() > 1 ) {
_deprecated_argument( __METHOD__, '2.2.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddyboss' ), __METHOD__, __FILE__ ) );
$old_args_keys = array(
0 => 'user_id',
1 => 'box',
2 => 'per_page',
3 => 'max',
4 => 'type',
5 => 'search_terms',
6 => 'page_arg'
);
$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
}
$r = wp_parse_args( $args, array(
'page' => 1,
'per_page' => 10,
'page_arg' => 'mpage',
'box' => 'inbox',
'type' => 'all',
'user_id' => bp_loggedin_user_id(),
'max' => false,
'search_terms' => '',
'include' => false,
'meta_query' => array(),
) );
$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'] );
$this->user_id = $r['user_id'];
$this->box = $r['box'];
$this->type = $r['type'];
$this->search_terms = $r['search_terms'];
$this->include = $r['include'];
if ( 'notices' === $this->box ) {
$this->threads = BP_Messages_Notice::get_notices( array(
'pag_num' => $this->pag_num,
'pag_page' => $this->pag_page
) );
} else {
$threads = BP_Messages_Thread::get_current_threads_for_user( array(
'user_id' => $this->user_id,
'box' => $this->box,
'type' => $this->type,
'limit' => $this->pag_num,
'page' => $this->pag_page,
'search_terms' => $this->search_terms,
'include' => $this->include,
'meta_query' => $r['meta_query'],
) );
$this->threads = $threads['threads'];
$this->total_thread_count = $threads['total'];
}
if ( !$this->threads ) {
$this->thread_count = 0;
$this->total_thread_count = 0;
} else {
$total_notice_count = BP_Messages_Notice::get_total_notice_count();
if ( empty( $r['max'] ) || ( (int) $r['max'] >= (int) $total_notice_count ) ) {
if ( 'notices' === $this->box ) {
$this->total_thread_count = (int) $total_notice_count;
}
} else {
$this->total_thread_count = (int) $r['max'];
}
if ( ! empty( $r['max'] ) ) {
if ( (int) $r['max'] >= count( $this->threads ) ) {
$this->thread_count = count( $this->threads );
} else {
$this->thread_count = (int) $r['max'];
}
} else {
$this->thread_count = count( $this->threads );
}
}
if ( (int) $this->total_thread_count && (int) $this->pag_num ) {
$pag_args = array(
$r['page_arg'] => '%#%',
);
if ( defined( 'DOING_AJAX' ) && true === (bool) DOING_AJAX ) {
$base = remove_query_arg( 's', wp_get_referer() );
} else {
$base = '';
}
$add_args = array();
if ( ! empty( $this->search_terms ) ) {
$add_args['s'] = $this->search_terms;
}
$this->pag_links = paginate_links( array(
'base' => add_query_arg( $pag_args, $base ),
'format' => '',
'total' => ceil( (int) $this->total_thread_count / (int) $this->pag_num ),
'current' => $this->pag_page,
'prev_text' => __( '←', 'buddyboss' ),
'next_text' => __( '→', 'buddyboss' ),
'mid_size' => 1,
'add_args' => $add_args,
) );
}
}
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.