Ejemplo n.º 1
0
 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));
 }
Ejemplo n.º 2
0
function bp_links_action_redirect_to_random_link()
{
    global $bp, $wpdb;
    if (bp_is_links_component() && isset($_GET['random-link'])) {
        $link = bp_links_get_random();
        bp_core_redirect(bp_get_link_permalink($link['links'][0]));
    }
}