Changeset 8042
- Timestamp:
- 03/05/2014 03:04:57 AM (12 years ago)
- Location:
- trunk/bp-blogs
- Files:
-
- 3 edited
-
bp-blogs-classes.php (modified) (2 diffs)
-
bp-blogs-functions.php (modified) (3 diffs)
-
bp-blogs-template.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-blogs/bp-blogs-classes.php
r8020 r8042 117 117 * @param bool $update_meta_cache Whether to pre-fetch metadata for 118 118 * blogs. Default: true. 119 * @param array $include_blog_ids Array of blog IDs to include. 119 120 * @return array Multidimensional results array, structured as follows: 120 121 * 'blogs' - Array of located blog objects 121 122 * 'total' - A count of the total blogs matching the filter params 122 123 */ 123 public static function get( $type, $limit = false, $page = false, $user_id = 0, $search_terms = false, $update_meta_cache = true ) {124 public static function get( $type, $limit = false, $page = false, $user_id = 0, $search_terms = false, $update_meta_cache = true, $include_blog_ids = false ) { 124 125 global $bp, $wpdb; 125 126 … … 148 149 } 149 150 151 $include_sql = ''; 152 $include_blog_ids = array_filter( wp_parse_id_list( $include_blog_ids ) ); 153 if ( ! empty( $include_blog_ids ) ) { 154 $blog_ids_sql = implode( ',', $include_blog_ids ); 155 $include_sql = " AND b.blog_id IN ({$blog_ids_sql})"; 156 } 157 150 158 if ( !empty( $search_terms ) ) { 151 159 $filter = esc_sql( like_escape( $search_terms ) ); 152 $paged_blogs = $wpdb->get_results( "SELECT b.blog_id, b.user_id as admin_user_id, u.user_email as admin_user_email, wb.domain, wb.path, bm.meta_value as last_activity, bm2.meta_value as name FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$wpdb->base_prefix}blogs wb, {$wpdb->users} u WHERE b.blog_id = wb.blog_id AND b.user_id = u.ID AND b.blog_id = bm.blog_id AND b.blog_id = bm2.blog_id AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$hidden_sql} AND bm.meta_key = 'last_activity' AND bm2.meta_key = 'name' AND bm2.meta_value LIKE '%%$filter%%' {$user_sql} GROUP BY b.blog_id {$order_sql} {$pag_sql}" );153 $total_blogs = $wpdb->get_var( "SELECT COUNT(DISTINCT b.blog_id) FROM {$bp->blogs->table_name} b, {$wpdb->base_prefix}blogs wb, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2 WHERE b.blog_id = wb.blog_id AND bm.blog_id = b.blog_id AND bm2.blog_id = b.blog_id AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$hidden_sql} AND bm.meta_key = 'name' AND bm2.meta_key = 'description' AND ( bm.meta_value LIKE '%%$filter%%' || bm2.meta_value LIKE '%%$filter%%' ) {$user_sql} " );160 $paged_blogs = $wpdb->get_results( "SELECT b.blog_id, b.user_id as admin_user_id, u.user_email as admin_user_email, wb.domain, wb.path, bm.meta_value as last_activity, bm2.meta_value as name FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$wpdb->base_prefix}blogs wb, {$wpdb->users} u WHERE b.blog_id = wb.blog_id AND b.user_id = u.ID AND b.blog_id = bm.blog_id AND b.blog_id = bm2.blog_id AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$hidden_sql} AND bm.meta_key = 'last_activity' AND bm2.meta_key = 'name' AND bm2.meta_value LIKE '%%$filter%%' {$user_sql} {$include_sql} GROUP BY b.blog_id {$order_sql} {$pag_sql}" ); 161 $total_blogs = $wpdb->get_var( "SELECT COUNT(DISTINCT b.blog_id) FROM {$bp->blogs->table_name} b, {$wpdb->base_prefix}blogs wb, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2 WHERE b.blog_id = wb.blog_id AND bm.blog_id = b.blog_id AND bm2.blog_id = b.blog_id AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$hidden_sql} AND bm.meta_key = 'name' AND bm2.meta_key = 'description' AND ( bm.meta_value LIKE '%%$filter%%' || bm2.meta_value LIKE '%%$filter%%' ) {$user_sql} {$include_sql}" ); 154 162 } else { 155 $paged_blogs = $wpdb->get_results( "SELECT b.blog_id, b.user_id as admin_user_id, u.user_email as admin_user_email, wb.domain, wb.path, bm.meta_value as last_activity, bm2.meta_value as name FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$wpdb->base_prefix}blogs wb, {$wpdb->users} u WHERE b.blog_id = wb.blog_id AND b.user_id = u.ID AND b.blog_id = bm.blog_id AND b.blog_id = bm2.blog_id {$user_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$hidden_sql} AND bm.meta_key = 'last_activity' AND bm2.meta_key = 'name' GROUP BY b.blog_id {$order_sql} {$pag_sql}" );156 $total_blogs = $wpdb->get_var( "SELECT COUNT(DISTINCT b.blog_id) FROM {$bp->blogs->table_name} b, {$wpdb->base_prefix}blogs wb WHERE b.blog_id = wb.blog_id {$user_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$ hidden_sql}" );163 $paged_blogs = $wpdb->get_results( "SELECT b.blog_id, b.user_id as admin_user_id, u.user_email as admin_user_email, wb.domain, wb.path, bm.meta_value as last_activity, bm2.meta_value as name FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$wpdb->base_prefix}blogs wb, {$wpdb->users} u WHERE b.blog_id = wb.blog_id AND b.user_id = u.ID AND b.blog_id = bm.blog_id AND b.blog_id = bm2.blog_id {$user_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$hidden_sql} AND bm.meta_key = 'last_activity' AND bm2.meta_key = 'name' {$include_sql} GROUP BY b.blog_id {$order_sql} {$pag_sql}" ); 164 $total_blogs = $wpdb->get_var( "SELECT COUNT(DISTINCT b.blog_id) FROM {$bp->blogs->table_name} b, {$wpdb->base_prefix}blogs wb WHERE b.blog_id = wb.blog_id {$user_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$include_sql} {$hidden_sql}" ); 157 165 } 158 166 -
trunk/bp-blogs/bp-blogs-functions.php
r7919 r8042 35 35 * @type string $type Default: 'active'. 36 36 * @type int|bool $user_id Default: false. 37 * @type array $include_blog_ids Default: false. 37 38 * @type string|bool $search_terms Default: false. 38 39 * @type int $per_page Default: 20. … … 47 48 'type' => 'active', // active, alphabetical, newest, or random 48 49 'user_id' => false, // Pass a user_id to limit to only blogs that this user has privilages higher than subscriber on 50 'include_blog_ids' => false, 49 51 'search_terms' => false, // Limit to blogs that match these search terms 50 52 'per_page' => 20, // The number of results to return per page … … 56 58 extract( $params, EXTR_SKIP ); 57 59 58 return apply_filters( 'bp_blogs_get_blogs', BP_Blogs_Blog::get( $type, $per_page, $page, $user_id, $search_terms, $update_meta_cache ), $params );60 return apply_filters( 'bp_blogs_get_blogs', BP_Blogs_Blog::get( $type, $per_page, $page, $user_id, $search_terms, $update_meta_cache, $include_blog_ids ), $params ); 59 61 } 60 62 -
trunk/bp-blogs/bp-blogs-template.php
r7965 r8042 172 172 * @param bool $update_meta_cache Whether to pre-fetch metadata for 173 173 * queried blogs. 174 */ 175 function __construct( $type, $page, $per_page, $max, $user_id, $search_terms, $page_arg = 'bpage', $update_meta_cache = true ) { 174 * @param array $include_blog_ids Array of blog IDs to include. 175 */ 176 function __construct( $type, $page, $per_page, $max, $user_id, $search_terms, $page_arg = 'bpage', $update_meta_cache = true, $include_blog_ids = false ) { 176 177 177 178 $this->pag_page = isset( $_REQUEST[$page_arg] ) ? intval( $_REQUEST[$page_arg] ) : $page; … … 188 189 'search_terms' => $search_terms, 189 190 'update_meta_cache' => $update_meta_cache, 191 'include_blog_ids' => $include_blog_ids, 190 192 ) ); 191 193 } … … 336 338 * Default: false (unlimited). 337 339 * @type string $type The order in which results should be fetched. 338 'active', 'alphabetical', 'newest', or 'random'. 340 * 'active', 'alphabetical', 'newest', or 'random'. 341 * @type array $include_blog_ids Array of blog IDs to limit results to. 339 342 * @type string $sort 'ASC' or 'DESC'. Default: 'DESC'. 340 343 * @type string $search_terms Limit results by a search term. Default: null. … … 370 373 371 374 'user_id' => $user_id, // Pass a user_id to limit to only blogs this user has higher than subscriber access to 375 'include_blog_ids' => false, 372 376 'search_terms' => $search_terms, // Pass search terms to filter on the blog title or description. 373 377 'update_meta_cache' => true, … … 390 394 } 391 395 392 $blogs_template = new BP_Blogs_Template( $type, $page, $per_page, $max, $user_id, $search_terms, $page_arg, $update_meta_cache );396 $blogs_template = new BP_Blogs_Template( $type, $page, $per_page, $max, $user_id, $search_terms, $page_arg, $update_meta_cache, $include_blog_ids ); 393 397 return apply_filters( 'bp_has_blogs', $blogs_template->has_blogs(), $blogs_template ); 394 398 }
Note: See TracChangeset
for help on using the changeset viewer.