Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
02/02/2010 03:31:49 PM (15 years ago)
Author:
apeatling
Message:

Major performance improvements to blog listings.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-blogs/bp-blogs-templatetags.php

    r2524 r2536  
    2424        $this->pag_num = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : $per_page;
    2525
    26         if ( isset( $_REQUEST['letter'] ) && '' != $_REQUEST['letter'] ) {
     26        if ( isset( $_REQUEST['letter'] ) && '' != $_REQUEST['letter'] )
    2727            $this->blogs = BP_Blogs_Blog::get_by_letter( $_REQUEST['letter'], $this->pag_num, $this->pag_page );
    28         } else {
    29             switch ( $type ) {
    30                 case 'random':
    31                     $this->blogs = BP_Blogs_Blog::get_random( $this->pag_num, $this->pag_page, $user_id, $search_terms );
    32                     break;
    33 
    34                 case 'alphabetical':
    35                     $this->blogs = BP_Blogs_Blog::get_alphabetical( $this->pag_num, $this->pag_page, $user_id, $search_terms );
    36                     break;
    37 
    38                 case 'newest':
    39                     $this->blogs = BP_Blogs_Blog::get_newest( $this->pag_num, $this->pag_page, $user_id, $search_terms );
    40                     break;
    41 
    42                 case 'active': default:
    43                     $this->blogs = BP_Blogs_Blog::get_active( $this->pag_num, $this->pag_page, $user_id, $search_terms );
    44                     break;
    45             }
    46         }
     28        else
     29            $this->blogs = BP_Blogs_Blog::get( $type, $this->pag_num, $this->pag_page, $user_id, $search_terms );
    4730
    4831        if ( !$max || $max >= (int)$this->blogs['total'] )
     
    219202            'class' => 'avatar',
    220203            'id' => false,
    221             'alt' => __( 'Blog avatar', 'buddypress' )
     204            'alt' => __( 'Blog avatar', 'buddypress' ),
     205            'no_grav' => true
    222206        );
    223207
     
    228212         * In future BuddyPress versions you will be able to set the avatar for a blog.
    229213         * Right now you can use a filter with the ID of the blog to change it if you wish.
     214         * By default it will return the avatar for the primary blog admin.
    230215         */
    231         return apply_filters( 'bp_get_blog_avatar_' . $blogs_template->blog->blog_id, bp_core_fetch_avatar( array( 'item_id' => $blogs_template->blog->blog_id, 'object' => 'blog', 'type' => $type, 'avatar_dir' => 'blog-avatars', 'alt' => $alt, 'width' => $width, 'height' => $height, 'class' => $class, 'email' => get_blog_option( $blogs_template->blog->blog_id, 'admin_email' ) ) ) );
     216        return apply_filters( 'bp_get_blog_avatar_' . $blogs_template->blog->blog_id, bp_core_fetch_avatar( array( 'item_id' => $blogs_template->blog->admin_user_id, 'type' => $type, 'alt' => $alt, 'width' => $width, 'height' => $height, 'class' => $class, 'email' => $blogs_template->blog->admin_user_email ) ) );
    232217    }
    233218        /* DEPRECATED */
     
    241226        global $blogs_template;
    242227
    243         return apply_filters( 'bp_get_blog_permalink', get_blog_option( $blogs_template->blog->blog_id, 'siteurl' ) );
     228        if ( empty( $blogs_template->blog->domain ) )
     229            $permalink = $bp->root_domain . $blogs_template->blog->path;
     230        else {
     231            $protocol = 'http://';
     232            if ( is_ssl() )
     233                $protocol = 'https://';
     234
     235            $permalink = $protocol . $blogs_template->blog->domain . $blogs_template->blog->path;
     236        }
     237
     238        return apply_filters( 'bp_get_blog_permalink', $permalink );
    244239    }
    245240
     
    250245        global $blogs_template;
    251246
    252         return apply_filters( 'bp_get_blog_name', get_blog_option( $blogs_template->blog->blog_id, 'blogname' ) );
     247        return apply_filters( 'bp_get_blog_name', $blogs_template->blog->name );
    253248    }
    254249
     
    259254        global $blogs_template;
    260255
    261         return apply_filters( 'bp_get_blog_description', get_blog_option( $blogs_template->blog->blog_id, 'blogdescription' ) );
     256        return apply_filters( 'bp_get_blog_description', $blogs_template->blog->description );
    262257    }
    263258
     
    268263        global $blogs_template;
    269264
    270         return apply_filters( 'bp_blog_last_active', bp_core_get_last_activity( bp_blogs_get_blogmeta( $blogs_template->blog->blog_id, 'last_activity' ), __( 'active %s ago', 'buddypress' ) ) );
     265        return apply_filters( 'bp_blog_last_active', bp_core_get_last_activity( $blogs_template->blog->last_activity, __( 'active %s ago', 'buddypress' ) ) );
    271266    }
    272267
     
    277272        global $blogs_template;
    278273
    279         if ( $post = bp_blogs_get_latest_posts( $blogs_template->blog->blog_id, 1 ) ) {
    280             return apply_filters( 'bp_get_blog_latest_post', sprintf( __( 'Latest Post: %s', 'buddypress' ), '<a href="' . bp_post_get_permalink( $post[0], $blogs_template->blog->blog_id ) . '">' . apply_filters( 'the_title', $post[0]->post_title ) . '</a>' ) );
    281         }
     274        if ( null == $blogs_template->blog->latest_post )
     275            return false;
     276
     277        return apply_filters( 'bp_get_blog_latest_post', sprintf( __( 'Latest Post: %s', 'buddypress' ), '<a href="' . $blogs_template->blog->latest_post->guid . '">' . apply_filters( 'the_title', $blogs_template->blog->latest_post->post_title ) . '</a>' ) );
    282278    }
    283279
Note: See TracChangeset for help on using the changeset viewer.