Changeset 2536
- Timestamp:
- 02/02/2010 03:31:49 PM (15 years ago)
- Location:
- trunk/bp-blogs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-blogs/bp-blogs-classes.php
r2394 r2536 70 70 /* Static Functions */ 71 71 72 function get( $type, $limit = false, $page = false, $user_id = false, $search_terms = false ) { 73 global $bp, $wpdb; 74 75 if ( !$bp->blogs ) 76 bp_blogs_setup_globals(); 77 78 if ( !is_user_logged_in() || ( !is_site_admin() && ( $user_id != $bp->loggedin_user->id ) ) ) 79 $hidden_sql = "AND wb.public = 1"; 80 81 if ( $limit && $page ) 82 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 83 84 if ( $user_id ) 85 $user_sql = $wpdb->prepare( " AND b.user_id = %d", $user_id ); 86 87 switch ( $type ) { 88 case 'active': default: 89 $order_sql = "ORDER BY CONVERT(bm.meta_value, SIGNED) DESC"; 90 break; 91 case 'alphabetical': 92 $order_sql = "ORDER BY bm2.meta_value ASC"; 93 break; 94 case 'newest': 95 $order_sql = "ORDER BY wb.registered DESC"; 96 break; 97 case 'random': 98 $order_sql = "ORDER BY RAND()"; 99 break; 100 } 101 102 if ( !empty( $search_terms ) ) { 103 $filter = like_escape( $wpdb->escape( $search_terms ) ); 104 $paged_blogs = $wpdb->get_results( $wpdb->prepare( "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, bm3.meta_value as description FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$bp->blogs->table_name_blogmeta} bm3, {$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 b.blog_id = bm3.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 bm3.meta_key = 'description' AND ( bm2.meta_value LIKE '%%$filter%%' || bm3.meta_value LIKE '%%$filter%%' ) {$user_sql} {$order_sql} {$pag_sql}" ) ); 105 $total_blogs = $wpdb->get_var( $wpdb->prepare( "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}" ) ); 106 } else { 107 $paged_blogs = $wpdb->get_results( $wpdb->prepare( "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, bm3.meta_value as description FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$bp->blogs->table_name_blogmeta} bm3, {$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 b.blog_id = bm3.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' AND bm3.meta_key = 'description' {$order_sql} {$pag_sql}" ) ); 108 $total_blogs = $wpdb->get_var( $wpdb->prepare( "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}" ) ); 109 } 110 111 foreach ( $paged_blogs as $blog ) $blog_ids[] = $blog->blog_id; 112 $blog_ids = $wpdb->escape( join( ',', (array)$blog_ids ) ); 113 $paged_blogs = BP_Blogs_Blog::get_blog_extras( &$paged_blogs, $blog_ids, $type ); 114 115 return array( 'blogs' => $paged_blogs, 'total' => $total_blogs ); 116 } 117 72 118 function delete_blog_for_all( $blog_id ) { 73 119 global $wpdb, $bp; … … 170 216 } 171 217 172 function get_all( $limit = null, $page = null ) { 173 global $bp, $wpdb; 174 175 if ( !$bp->blogs ) 176 bp_blogs_setup_globals(); 218 function search_blogs( $filter, $limit = null, $page = null ) { 219 global $wpdb, $bp; 220 221 if ( !$bp->blogs ) 222 bp_blogs_setup_globals(); 223 224 $filter = like_escape( $wpdb->escape( $filter ) ); 177 225 178 226 if ( !is_site_admin() ) … … 182 230 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 183 231 232 $paged_blogs = $wpdb->get_results( "SELECT DISTINCT bm.blog_id FROM {$bp->blogs->table_name_blogmeta} bm LEFT JOIN {$wpdb->base_prefix}blogs wb ON bm.blog_id = wb.blog_id WHERE ( ( bm.meta_key = 'name' OR bm.meta_key = 'description' ) AND bm.meta_value LIKE '%%$filter%%' ) {$hidden_sql} AND wb.mature = 0 AND wb.spam = 0 AND wb.archived = '0' AND wb.deleted = 0 ORDER BY meta_value ASC{$pag_sql}" ); 233 $total_blogs = $wpdb->get_var( "SELECT COUNT(DISTINCT bm.blog_id) FROM {$bp->blogs->table_name_blogmeta} bm LEFT JOIN {$wpdb->base_prefix}blogs wb ON bm.blog_id = wb.blog_id WHERE ( ( bm.meta_key = 'name' OR bm.meta_key = 'description' ) AND bm.meta_value LIKE '%%$filter%%' ) {$hidden_sql} AND wb.mature = 0 AND wb.spam = 0 AND wb.archived = '0' AND wb.deleted = 0 ORDER BY meta_value ASC" ); 234 235 return array( 'blogs' => $paged_blogs, 'total' => $total_blogs ); 236 } 237 238 function get_all( $limit = null, $page = null ) { 239 global $bp, $wpdb; 240 241 if ( !$bp->blogs ) 242 bp_blogs_setup_globals(); 243 244 if ( !is_site_admin() ) 245 $hidden_sql = "AND wb.public = 1"; 246 247 if ( $limit && $page ) 248 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 249 184 250 $paged_blogs = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT b.blog_id FROM {$bp->blogs->table_name} b LEFT JOIN {$wpdb->base_prefix}blogs wb ON b.blog_id = wb.blog_id WHERE wb.mature = 0 AND wb.spam = 0 AND wb.archived = '0' AND wb.deleted = 0 {$hidden_sql} {$pag_sql}" ) ); 185 251 $total_blogs = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT b.blog_id) FROM {$bp->blogs->table_name} b LEFT JOIN {$wpdb->base_prefix}blogs wb ON b.blog_id = wb.blog_id WHERE wb.mature = 0 AND wb.spam = 0 AND wb.archived = '0' AND wb.deleted = 0 {$hidden_sql}" ) ); … … 208 274 } 209 275 210 function search_blogs( $filter, $limit = null, $page = null ) { 211 global $wpdb, $bp; 212 213 if ( !$bp->blogs ) 214 bp_blogs_setup_globals(); 215 216 $filter = like_escape( $wpdb->escape( $filter ) ); 217 218 if ( !is_site_admin() ) 219 $hidden_sql = "AND wb.public = 1"; 220 221 if ( $limit && $page ) 222 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 223 224 $paged_blogs = $wpdb->get_results( "SELECT DISTINCT bm.blog_id FROM {$bp->blogs->table_name_blogmeta} bm LEFT JOIN {$wpdb->base_prefix}blogs wb ON bm.blog_id = wb.blog_id WHERE ( ( bm.meta_key = 'name' OR bm.meta_key = 'description' ) AND bm.meta_value LIKE '%%$filter%%' ) {$hidden_sql} AND wb.mature = 0 AND wb.spam = 0 AND wb.archived = '0' AND wb.deleted = 0 ORDER BY meta_value ASC{$pag_sql}" ); 225 $total_blogs = $wpdb->get_var( "SELECT COUNT(DISTINCT bm.blog_id) FROM {$bp->blogs->table_name_blogmeta} bm LEFT JOIN {$wpdb->base_prefix}blogs wb ON bm.blog_id = wb.blog_id WHERE ( ( bm.meta_key = 'name' OR bm.meta_key = 'description' ) AND bm.meta_value LIKE '%%$filter%%' ) {$hidden_sql} AND wb.mature = 0 AND wb.spam = 0 AND wb.archived = '0' AND wb.deleted = 0 ORDER BY meta_value ASC" ); 226 227 return array( 'blogs' => $paged_blogs, 'total' => $total_blogs ); 228 } 229 230 function get_random( $limit = null, $page = null, $user_id = false, $search_terms = false ) { 231 global $bp, $wpdb; 232 233 if ( !$bp->blogs ) 234 bp_blogs_setup_globals(); 235 236 if ( !is_user_logged_in() || ( !is_site_admin() && ( $user_id != $bp->loggedin_user->id ) ) ) 237 $hidden_sql = "AND wb.public = 1"; 238 239 if ( $limit && $page ) 240 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 241 242 if ( $user_id ) { 243 $blog_ids = $wpdb->escape( implode( ',', (array)BP_Blogs_Blog::get_blog_ids_for_user( $user_id) ) ); 244 $user_sql = $wpdb->prepare( " AND b.blog_id IN ( {$blog_ids} ) "); 245 } 246 247 $paged_blogs = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT b.blog_id FROM {$bp->blogs->table_name} b LEFT JOIN {$wpdb->base_prefix}blogs wb ON b.blog_id = wb.blog_id WHERE wb.public = 1 AND wb.mature = 0 AND wb.spam = 0 AND wb.archived = '0' AND wb.deleted = 0 {$user_sql} ORDER BY rand() {$pag_sql}" ) ); 248 $total_blogs = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT b.blog_id) FROM {$bp->blogs->table_name} b LEFT JOIN {$wpdb->base_prefix}blogs wb ON b.blog_id = wb.blog_id WHERE wb.public = 1 AND wb.mature = 0 AND wb.spam = 0 AND wb.archived = '0' AND wb.deleted = 0 {$user_sql} ORDER BY rand()" ) ); 249 250 return array( 'blogs' => $paged_blogs, 'total' => $total_blogs ); 251 } 252 253 function get_active( $limit = null, $page = null, $user_id = false, $search_terms = false ) { 254 global $bp, $wpdb; 255 256 if ( !$bp->blogs ) 257 bp_blogs_setup_globals(); 258 259 if ( !is_user_logged_in() || ( !is_site_admin() && ( $user_id != $bp->loggedin_user->id ) ) ) 260 $hidden_sql = "AND wb.public = 1"; 261 262 if ( $limit && $page ) 263 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 264 265 if ( $user_id ) { 266 $blog_ids = $wpdb->escape( implode( ',', (array)BP_Blogs_Blog::get_blog_ids_for_user( $user_id ) ) ); 267 268 if ( empty( $blog_ids ) ) 269 return false; 270 else 271 $user_sql = $wpdb->prepare( " AND b.blog_id IN ( {$blog_ids} ) " ); 272 } 273 274 if ( !empty( $search_terms ) ) { 275 $filter = like_escape( $wpdb->escape( $search_terms ) ); 276 $paged_blogs = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT b.blog_id FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$wpdb->base_prefix}blogs wb WHERE b.blog_id = wb.blog_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' OR bm2.meta_key = 'description' ) AND bm2.meta_value LIKE '%%$filter%%' ) {$user_sql} ORDER BY CONVERT(bm.meta_value, SIGNED) DESC {$pag_sql}" ) ); 277 $total_blogs = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT bm.blog_id) FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$wpdb->base_prefix}blogs wb WHERE b.blog_id = wb.blog_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' OR bm2.meta_key = 'description' ) AND bm2.meta_value LIKE '%%$filter%%' ) {$user_sql} ORDER BY CONVERT(bm.meta_value, SIGNED) DESC" ) ); 278 } else { 279 $paged_blogs = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT b.blog_id FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$wpdb->base_prefix}blogs wb WHERE b.blog_id = wb.blog_id AND b.blog_id = bm.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' {$user_sql} ORDER BY CONVERT(bm.meta_value, SIGNED) DESC {$pag_sql}" ) ); 280 $total_blogs = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT bm.blog_id) FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$wpdb->base_prefix}blogs wb WHERE b.blog_id = wb.blog_id AND b.blog_id = bm.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' {$user_sql} ORDER BY CONVERT(bm.meta_value, SIGNED) DESC" ) ); 281 } 282 283 return array( 'blogs' => $paged_blogs, 'total' => $total_blogs ); 284 } 285 286 function get_alphabetical( $limit = null, $page = null, $user_id = false, $search_terms = false ) { 287 global $bp, $wpdb; 288 289 if ( !$bp->blogs ) 290 bp_blogs_setup_globals(); 291 292 if ( !is_user_logged_in() || ( !is_site_admin() && ( $user_id != $bp->loggedin_user->id ) ) ) 293 $hidden_sql = "AND wb.public = 1"; 294 295 if ( $limit && $page ) 296 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 297 298 if ( $user_id ) { 299 $blog_ids = $wpdb->escape( implode( ',', (array)BP_Blogs_Blog::get_blog_ids_for_user( $user_id ) ) ); 300 301 if ( empty( $blog_ids ) ) 302 return false; 303 else 304 $user_sql = $wpdb->prepare( " AND b.blog_id IN ( {$blog_ids} ) " ); 305 } 306 307 if ( !empty( $search_terms ) ) { 308 $filter = like_escape( $wpdb->escape( $search_terms ) ); 309 $paged_blogs = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT b.blog_id FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$bp->blogs->table_name_blogmeta} bm3, {$wpdb->base_prefix}blogs wb WHERE b.blog_id = wb.blog_id AND b.blog_id = bm.blog_id AND b.blog_id = bm2.blog_id AND b.blog_id = bm3.blog_id {$hidden_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 AND bm.meta_key = 'last_activity' AND bm2.meta_key = 'name' AND ( ( bm3.meta_key = 'name' OR bm3.meta_key = 'description' ) AND bm3.meta_value LIKE '%%$filter%%' ) {$user_sql} ORDER BY bm2.meta_value ASC {$pag_sql}" ) ); 310 $total_blogs = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT b.blog_id) FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$bp->blogs->table_name_blogmeta} bm3, {$wpdb->base_prefix}blogs wb WHERE b.blog_id = wb.blog_id AND b.blog_id = bm.blog_id AND b.blog_id = bm2.blog_id AND b.blog_id = bm3.blog_id {$hidden_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 AND bm.meta_key = 'last_activity' AND bm2.meta_key = 'name' AND ( ( bm3.meta_key = 'name' OR bm3.meta_key = 'description' ) AND bm3.meta_value LIKE '%%$filter%%' ) {$user_sql}" ) ); 311 } else { 312 $paged_blogs = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT b.blog_id FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$wpdb->base_prefix}blogs wb WHERE b.blog_id = wb.blog_id AND b.blog_id = bm.blog_id AND b.blog_id = bm2.blog_id {$hidden_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 AND bm.meta_key = 'last_activity' AND bm2.meta_key = 'name' {$user_sql} ORDER BY bm2.meta_value ASC {$pag_sql}" ) ); 313 $total_blogs = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT b.blog_id) FROM {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm, {$bp->blogs->table_name_blogmeta} bm2, {$wpdb->base_prefix}blogs wb WHERE b.blog_id = wb.blog_id AND b.blog_id = bm.blog_id AND b.blog_id = bm2.blog_id {$hidden_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 AND bm.meta_key = 'last_activity' AND bm2.meta_key = 'name' {$user_sql}" ) ); 314 } 315 316 return array( 'blogs' => $paged_blogs, 'total' => $total_blogs ); 317 } 318 319 function get_newest( $limit = null, $page = null, $user_id = false, $search_terms = false ) { 320 global $bp, $wpdb; 321 322 if ( !$bp->blogs ) 323 bp_blogs_setup_globals(); 324 325 if ( !is_user_logged_in() || ( !is_site_admin() && ( $user_id != $bp->loggedin_user->id ) ) ) 326 $hidden_sql = "AND wb.public = 1"; 327 328 if ( $limit && $page ) 329 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 330 331 if ( $user_id ) { 332 $blog_ids = $wpdb->escape( implode( ',', (array)BP_Blogs_Blog::get_blog_ids_for_user( $bp->loggedin_user->id ) ) ); 333 334 if ( empty( $blog_ids ) ) 335 return false; 336 else 337 $user_sql = $wpdb->prepare( " AND b.blog_id IN ( {$blog_ids} ) " ); 338 } 339 340 if ( !empty( $search_terms ) ) { 341 $filter = like_escape( $wpdb->escape( $search_terms ) ); 342 $paged_blogs = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT b.blog_id FROM {$wpdb->base_prefix}blogs wb, {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm WHERE b.blog_id = wb.blog_id AND b.blog_id = bm.blog_id {$hidden_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 AND ( ( bm.meta_key = 'name' OR bm.meta_key = 'description' ) AND bm.meta_value LIKE '%%$filter%%' ) {$user_sql} ORDER BY wb.registered DESC {$pag_sql}" ) ); 343 $total_blogs = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT b.blog_id) FROM {$wpdb->base_prefix}blogs wb, {$bp->blogs->table_name} b, {$bp->blogs->table_name_blogmeta} bm WHERE b.blog_id = wb.blog_id AND b.blog_id = bm.blog_id {$hidden_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 AND ( ( bm.meta_key = 'name' OR bm.meta_key = 'description' ) AND bm.meta_value LIKE '%%$filter%%' ) {$user_sql} ORDER BY wb.registered DESC" ) ); 344 } else { 345 $paged_blogs = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT wb.blog_id FROM {$wpdb->base_prefix}blogs wb, {$bp->blogs->table_name} b WHERE wb.blog_id = b.blog_id {$hidden_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$user_sql} ORDER BY wb.registered DESC {$pag_sql}" ) ); 346 $total_blogs = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT wb.blog_id) FROM {$wpdb->base_prefix}blogs wb, {$bp->blogs->table_name} b WHERE wb.blog_id = b.blog_id {$hidden_sql} AND wb.archived = '0' AND wb.spam = 0 AND wb.mature = 0 AND wb.deleted = 0 {$user_sql} ORDER BY wb.registered DESC" ) ); 347 } 348 349 return array( 'blogs' => $paged_blogs, 'total' => $total_blogs ); 276 function get_blog_extras( $paged_blogs, $blog_ids, $type = false ) { 277 global $bp, $wpdb; 278 279 if ( empty( $blog_ids ) ) 280 return $paged_blogs; 281 282 /* Fetch lastest post for each blog. */ 283 $post_ids = $wpdb->get_results( $wpdb->prepare( "SELECT p.post_id, p.blog_id FROM {$bp->blogs->table_name_blog_posts} p LEFT JOIN {$wpdb->base_prefix}blogs b ON p.blog_id = b.blog_id WHERE b.deleted = 0 AND b.archived = '0' AND b.spam = 0 AND b.mature = 0 AND p.blog_id IN ( {$blog_ids} ) GROUP BY p.blog_id ORDER BY p.date_created DESC" ) ); 284 285 for ( $i = 0; $i < count( $paged_blogs ); $i++ ) { 286 foreach ( $post_ids as $post ) { 287 if ( $post->blog_id == $paged_blogs[$i]->blog_id ) { 288 $paged_blogs[$i]->latest_post = $wpdb->get_row( "SELECT post_title, guid FROM {$wpdb->base_prefix}" . $post->blog_id . "_posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY id DESC LIMIT 1" ); 289 } 290 } 291 } 292 293 return $paged_blogs; 350 294 } 351 295 -
trunk/bp-blogs/bp-blogs-templatetags.php
r2524 r2536 24 24 $this->pag_num = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : $per_page; 25 25 26 if ( isset( $_REQUEST['letter'] ) && '' != $_REQUEST['letter'] ) {26 if ( isset( $_REQUEST['letter'] ) && '' != $_REQUEST['letter'] ) 27 27 $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 ); 47 30 48 31 if ( !$max || $max >= (int)$this->blogs['total'] ) … … 219 202 'class' => 'avatar', 220 203 'id' => false, 221 'alt' => __( 'Blog avatar', 'buddypress' ) 204 'alt' => __( 'Blog avatar', 'buddypress' ), 205 'no_grav' => true 222 206 ); 223 207 … … 228 212 * In future BuddyPress versions you will be able to set the avatar for a blog. 229 213 * 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. 230 215 */ 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 ) ) ); 232 217 } 233 218 /* DEPRECATED */ … … 241 226 global $blogs_template; 242 227 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 ); 244 239 } 245 240 … … 250 245 global $blogs_template; 251 246 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 ); 253 248 } 254 249 … … 259 254 global $blogs_template; 260 255 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 ); 262 257 } 263 258 … … 268 263 global $blogs_template; 269 264 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' ) ) ); 271 266 } 272 267 … … 277 272 global $blogs_template; 278 273 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>' ) ); 282 278 } 283 279
Note: See TracChangeset
for help on using the changeset viewer.