function bp_links_template($args = array()) { // init args used in this scope $type = null; $page = null; $per_page = null; $max = null; $slug = null; $avatar_size = null; // handle query string overrides if (isset($_REQUEST['lpage'])) { $args['page'] = intval($_REQUEST['lpage']); } if (isset($_REQUEST['num'])) { $args['per_page'] = intval($_REQUEST['num']); } // extract 'em extract($args); // handle empty type if (empty($type)) { // get order options $order_options = bp_links_get_order_options(); // default type is first key $type = key($order_options); } // set avatar size $this->avatar_display_size($avatar_size); // set paging props $this->pag_page = $page; $this->pag_num = $per_page; switch ($type) { default: case 'active': $this->links = bp_links_get_active($args); break; case 'newest': $this->links = bp_links_get_newest($args); break; case 'search': $this->links = bp_links_get_search($args); break; case 'popular': $this->links = bp_links_get_popular($args); break; case 'most-votes': $this->links = bp_links_get_most_votes($args); break; case 'high-votes': $this->links = bp_links_get_high_votes($args); break; case 'all': $this->links = bp_links_get_all($args); break; case 'random': $this->links = bp_links_get_random(); break; case 'single-link': $link = new stdClass(); $link->link_id = BP_Links_Link::get_id_from_slug($slug); $this->links = array($link); break; } if ('single-link' == $type) { $this->total_link_count = 1; $this->link_count = 1; } else { if (!$max || $max >= (int) $this->links['total']) { $this->total_link_count = (int) $this->links['total']; } else { $this->total_link_count = (int) $max; } $this->links = $this->links['links']; if ($max) { if ($max >= count($this->links)) { $this->link_count = count($this->links); } else { $this->link_count = (int) $max; } } else { $this->link_count = count($this->links); } } $this->pag_links = paginate_links(array('base' => add_query_arg(array('lpage' => '%#%', 'num' => $this->pag_num, 's' => $_REQUEST['s'], 'sortby' => $this->sort_by, 'order' => $this->order)), 'format' => '', 'total' => ceil($this->total_link_count / $this->pag_num), 'current' => $this->pag_page, 'prev_text' => '«', 'next_text' => '»', 'mid_size' => 1)); }