Changeset 2919 for trunk/bp-groups/bp-groups-classes.php
- Timestamp:
- 04/13/2010 04:01:07 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-groups/bp-groups-classes.php
r2770 r2919 256 256 } 257 257 258 /* TODO: Merge all these get_() functions into one. */ 259 260 function get_newest( $limit = null, $page = null, $user_id = false, $search_terms = false, $populate_extras = true ) { 261 global $wpdb, $bp; 262 263 if ( $limit && $page ) 264 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 258 function get( $type = 'newest', $per_page = null, $page = null, $user_id = false, $search_terms = false, $include = false, $populate_extras = true ) { 259 global $wpdb, $bp; 260 261 $sql = array(); 262 263 $sql['select'] = "SELECT g.*, gm1.meta_value AS total_member_count, gm2.meta_value AS last_activity"; 264 $sql['from'] = " FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2,"; 265 266 if ( !empty( $user_id ) ) 267 $sql['members_from'] = " {$bp->groups->table_name_members} m,"; 268 269 $sql['group_from'] = " {$bp->groups->table_name} g WHERE"; 270 271 if ( !empty( $user_id ) ) 272 $sql['user_where'] = " g.id = m.group_id AND"; 273 274 $sql['where'] = " g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count'"; 265 275 266 276 if ( !is_user_logged_in() || ( !is_site_admin() && ( $user_id != $bp->loggedin_user->id ) ) ) 267 $ hidden_sql = "AND g.status != 'hidden'";277 $sql['hidden'] = " AND g.status != 'hidden'"; 268 278 269 279 if ( $search_terms ) { 270 280 $search_terms = like_escape( $wpdb->escape( $search_terms ) ); 271 $search_sql = " AND ( g.name LIKE '%%{$search_terms}%%' OR g.description LIKE '%%{$search_terms}%%' )"; 272 } 273 274 if ( $user_id ) { 275 $user_id = $wpdb->escape( $user_id ); 276 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0 ORDER BY g.date_created DESC {$pag_sql}" ); 277 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m LEFT JOIN {$bp->groups->table_name_groupmeta} gm ON m.group_id = gm.group_id INNER JOIN {$bp->groups->table_name} g ON m.group_id = g.id WHERE gm.meta_key = 'last_activity'{$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0" ); 278 } else { 279 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} ORDER BY g.date_created DESC {$pag_sql}" ); 280 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT g.id) FROM {$bp->groups->table_name_groupmeta} gm INNER JOIN {$bp->groups->table_name} g ON gm.group_id = g.id WHERE gm.meta_key = 'last_activity'{$hidden_sql} {$search_sql}" ); 281 } 282 281 $sql['search'] = " AND ( g.name LIKE '%%{$search_terms}%%' OR g.description LIKE '%%{$search_terms}%%' )"; 282 } 283 284 if ( !empty( $user_id ) ) 285 $sql['user'] = $wpdb->prepare( " AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0", $user_id ); 286 287 if ( !empty( $include ) ) { 288 $include = $wpdb->escape( $include ); 289 $sql['include'] = " AND g.id IN ({$include})"; 290 } 291 292 switch ( $type ) { 293 case 'newest': default: 294 $sql['order'] = " ORDER BY g.date_created DESC"; 295 break; 296 case 'active': 297 $sql[] = "ORDER BY last_activity DESC"; 298 break; 299 case 'popular': 300 $sql[] = "ORDER BY CONVERT(gm1.meta_value, SIGNED) DESC"; 301 break; 302 case 'alphabetical': 303 $sql[] = "ORDER BY g.name ASC"; 304 break; 305 case 'random': 306 $sql[] = "ORDER BY rand()"; 307 break; 308 } 309 310 if ( $per_page && $page ) 311 $sql['pagination'] = $wpdb->prepare( "LIMIT %d, %d", intval( ( $page - 1 ) * $per_page), intval( $per_page ) ); 312 313 /* Get paginated results */ 314 $paged_groups = $wpdb->get_results( join( ' ', (array)$sql ) ); 315 316 $total_sql['select'] = "SELECT COUNT(g.id) FROM {$bp->groups->table_name} g"; 317 318 if ( !empty( $user_id ) ) 319 $total_sql['select'] .= ", {$bp->groups->table_name_members} m"; 320 321 if ( !empty( $sql['hidden'] ) ) 322 $total_sql['where'][] = "g.status != 'hidden'"; 323 324 if ( !empty( $sql['search'] ) ) 325 $total_sql['where'][] = "( g.name LIKE '%%{$search_terms}%%' OR g.description LIKE '%%{$search_terms}%%' )"; 326 327 if ( !empty( $user_id ) ) 328 $total_sql['where'][] = "m.group_id = g.id AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0"; 329 330 $t_sql = $total_sql['select']; 331 332 if ( !empty( $total_sql['where'] ) ) 333 $t_sql .= " WHERE " . join( ' AND ', (array)$total_sql['where'] ); 334 335 /* Get total group results */ 336 $total_groups = $wpdb->get_var( join( ' ', (array)$t_sql ) ); 337 338 /* Populate some extra information instead of querying each time in the loop */ 283 339 if ( !empty( $populate_extras ) ) { 284 340 foreach ( (array)$paged_groups as $group ) $group_ids[] = $group->id; 285 341 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 286 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'newest' ); 287 } 288 289 return array( 'groups' => $paged_groups, 'total' => $total_groups ); 290 } 291 292 function get_active( $limit = null, $page = null, $user_id = false, $search_terms = false, $populate_extras = true ) { 293 global $wpdb, $bp; 294 295 if ( $limit && $page ) 296 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 297 298 if ( !is_user_logged_in() || ( !is_site_admin() && ( $user_id != $bp->loggedin_user->id ) ) ) 299 $hidden_sql = "AND g.status != 'hidden'"; 300 301 if ( $search_terms ) { 302 $search_terms = like_escape( $wpdb->escape( $search_terms ) ); 303 $search_sql = " AND ( g.name LIKE '%%{$search_terms}%%' OR g.description LIKE '%%{$search_terms}%%' )"; 304 } 305 306 if ( $user_id ) { 307 $user_id = $wpdb->escape( $user_id ); 308 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0 ORDER BY last_activity DESC {$pag_sql}" ); 309 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m LEFT JOIN {$bp->groups->table_name_groupmeta} gm ON m.group_id = gm.group_id INNER JOIN {$bp->groups->table_name} g ON m.group_id = g.id WHERE gm.meta_key = 'last_activity'{$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0" ); 310 } else { 311 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} ORDER BY last_activity DESC {$pag_sql}" ); 312 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT g.id) FROM {$bp->groups->table_name_groupmeta} gm INNER JOIN {$bp->groups->table_name} g ON gm.group_id = g.id WHERE gm.meta_key = 'last_activity'{$hidden_sql} {$search_sql}" ); 313 } 314 315 if ( !empty( $populate_extras ) ) { 316 foreach ( (array)$paged_groups as $group ) $group_ids[] = $group->id; 317 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 318 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'newest' ); 319 } 320 321 return array( 'groups' => $paged_groups, 'total' => $total_groups ); 322 } 323 324 function get_popular( $limit = null, $page = null, $user_id = false, $search_terms = false, $populate_extras = true ) { 325 global $wpdb, $bp; 326 327 if ( $limit && $page ) { 328 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 329 } 330 331 if ( !is_user_logged_in() || ( !is_site_admin() && ( $user_id != $bp->loggedin_user->id ) ) ) 332 $hidden_sql = "AND g.status != 'hidden'"; 333 334 if ( $search_terms ) { 335 $search_terms = like_escape( $wpdb->escape( $search_terms ) ); 336 $search_sql = " AND ( g.name LIKE '%%{$search_terms}%%' OR g.description LIKE '%%{$search_terms}%%' )"; 337 } 338 339 if ( $user_id ) { 340 $user_id = $wpdb->escape( $user_id ); 341 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0 ORDER BY CONVERT(gm1.meta_value, SIGNED) DESC {$pag_sql}" ); 342 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m LEFT JOIN {$bp->groups->table_name_groupmeta} gm ON m.group_id = gm.group_id INNER JOIN {$bp->groups->table_name} g ON m.group_id = g.id WHERE gm.meta_key = 'last_activity'{$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0" ); 343 } else { 344 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} ORDER BY CONVERT(gm1.meta_value, SIGNED) DESC {$pag_sql}" ); 345 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT g.id) FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql}" ); 346 } 347 348 if ( !empty( $populate_extras ) ) { 349 foreach ( (array)$paged_groups as $group ) $group_ids[] = $group->id; 350 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 351 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'newest' ); 352 } 353 354 return array( 'groups' => $paged_groups, 'total' => $total_groups ); 355 } 356 357 function get_alphabetically( $limit = null, $page = null, $user_id = false, $search_terms = false, $populate_extras = true ) { 358 global $wpdb, $bp; 359 360 if ( $limit && $page ) 361 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 362 363 if ( !is_user_logged_in() || ( !is_site_admin() && ( $user_id != $bp->loggedin_user->id ) ) ) 364 $hidden_sql = " AND g.status != 'hidden'"; 365 366 if ( $search_terms ) { 367 $search_terms = like_escape( $wpdb->escape( $search_terms ) ); 368 $search_sql = " AND ( g.name LIKE '%%{$search_terms}%%' OR g.description LIKE '%%{$search_terms}%%' )"; 369 } 370 371 if ( $user_id ) { 372 $user_id = $wpdb->escape( $user_id ); 373 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0 ORDER BY g.name ASC {$pag_sql}" ); 374 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m LEFT JOIN {$bp->groups->table_name_groupmeta} gm ON m.group_id = gm.group_id INNER JOIN {$bp->groups->table_name} g ON m.group_id = g.id WHERE gm.meta_key = 'last_activity' {$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0" ); 375 } else { 376 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} ORDER BY g.name ASC {$pag_sql}" ); 377 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT g.id) FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql}" ); 378 } 379 380 if ( !empty( $populate_extras ) ) { 381 foreach ( (array)$paged_groups as $group ) $group_ids[] = $group->id; 382 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) ); 383 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'newest' ); 384 } 342 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, $type ); 343 } 344 345 unset( $sql, $total_sql ); 385 346 386 347 return array( 'groups' => $paged_groups, 'total' => $total_groups ); … … 459 420 } 460 421 461 function get_all( $limit = null, $page = null, $only_public = true, $sort_by = false, $order = false ) {462 global $wpdb, $bp;463 464 // Default sql WHERE conditions are blank. TODO: generic handler function.465 $where_sql = null;466 $where_conditions = array();467 468 // Limit results to public status469 if ( $only_public )470 $where_conditions[] = $wpdb->prepare( "g.status = 'public'" );471 472 if ( !is_site_admin() )473 $where_conditions[] = $wpdb->prepare( "g.status != 'hidden'");474 475 // Build where sql statement if necessary476 if ( !empty( $where_conditions ) )477 $where_sql = 'WHERE ' . join( ' AND ', $where_conditions );478 479 if ( $limit && $page )480 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );481 482 if ( $sort_by && $order ) {483 $sort_by = $wpdb->escape( $sort_by );484 $order = $wpdb->escape( $order );485 $order_sql = "ORDER BY g.$sort_by $order";486 487 switch ( $sort_by ) {488 default:489 $sql = $wpdb->prepare( "SELECT * FROM {$bp->groups->table_name} g {$where_sql} {$order_sql} {$pag_sql}" );490 break;491 case 'members':492 $sql = $wpdb->prepare( "SELECT * FROM {$bp->groups->table_name} g, {$bp->groups->table_name_groupmeta} gm WHERE g.id = gm.group_id AND gm.meta_key = 'total_member_count' {$hidden_sql} {$public_sql} ORDER BY CONVERT(gm.meta_value, SIGNED) {$order} {$pag_sql}" );493 break;494 case 'last_active':495 $sql = $wpdb->prepare( "SELECT * FROM {$bp->groups->table_name} g, {$bp->groups->table_name_groupmeta} gm WHERE g.id = gm.group_id AND gm.meta_key = 'last_activity' {$hidden_sql} {$public_sql} ORDER BY CONVERT(gm.meta_value, SIGNED) {$order} {$pag_sql}" );496 break;497 }498 } else {499 $sql = $wpdb->prepare( "SELECT * FROM {$bp->groups->table_name} g {$where_sql} {$order_sql} {$pag_sql}" );500 }501 502 return $wpdb->get_results($sql);503 }504 505 422 function get_by_letter( $letter, $limit = null, $page = null, $populate_extras = true ) { 506 423 global $wpdb, $bp; … … 520 437 521 438 $paged_groups = $wpdb->get_results( $wpdb->prepare( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' AND g.name LIKE '$letter%%' {$hidden_sql} {$search_sql} ORDER BY g.name ASC {$pag_sql}" ) ); 522 523 if ( !empty( $populate_extras ) ) {524 foreach ( (array)$paged_groups as $group ) $group_ids[] = $group->id;525 $group_ids = $wpdb->escape( join( ',', (array)$group_ids ) );526 $paged_groups = BP_Groups_Group::get_group_extras( &$paged_groups, $group_ids, 'newest' );527 }528 529 return array( 'groups' => $paged_groups, 'total' => $total_groups );530 }531 532 function get_random( $limit = null, $page = null, $user_id = false, $search_terms = false, $populate_extras = true ) {533 global $wpdb, $bp;534 535 if ( $limit && $page )536 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );537 538 if ( !is_user_logged_in() || ( !is_site_admin() && ( $user_id != $bp->loggedin_user->id ) ) )539 $hidden_sql = "AND g.status != 'hidden'";540 541 if ( $search_terms ) {542 $search_terms = like_escape( $wpdb->escape( $search_terms ) );543 $search_sql = " AND ( g.name LIKE '%%{$search_terms}%%' OR g.description LIKE '%%{$search_terms}%%' )";544 }545 546 if ( $user_id ) {547 $user_id = $wpdb->escape( $user_id );548 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0 ORDER BY rand() {$pag_sql}" );549 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m LEFT JOIN {$bp->groups->table_name_groupmeta} gm ON m.group_id = gm.group_id INNER JOIN {$bp->groups->table_name} g ON m.group_id = g.id WHERE gm.meta_key = 'last_activity'{$hidden_sql} {$search_sql} AND m.user_id = {$user_id} AND m.is_confirmed = 1 AND m.is_banned = 0" );550 } else {551 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name} g WHERE g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' {$hidden_sql} {$search_sql} ORDER BY rand() {$pag_sql}" );552 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT g.id) FROM {$bp->groups->table_name_groupmeta} gm INNER JOIN {$bp->groups->table_name} g ON gm.group_id = g.id WHERE gm.meta_key = 'last_activity'{$hidden_sql} {$search_sql}" );553 }554 439 555 440 if ( !empty( $populate_extras ) ) { … … 1013 898 $user_ids = $wpdb->escape( join( ',', (array)$user_ids ) ); 1014 899 1015 if ( function_exists( 'friends_install' ) ) {900 if ( bp_is_active( 'friends' ) ) { 1016 901 $friend_status = $wpdb->get_results( $wpdb->prepare( "SELECT initiator_user_id, friend_user_id, is_confirmed FROM {$bp->friends->table_name} WHERE (initiator_user_id = %d AND friend_user_id IN ( {$user_ids} ) ) OR (initiator_user_id IN ( {$user_ids} ) AND friend_user_id = %d )", $bp->loggedin_user->id, $bp->loggedin_user->id ) ); 1017 902 for ( $i = 0; $i < count( $members ); $i++ ) { … … 1103 988 global $bp; 1104 989 990 /* When we are viewing a single group, add the group extension nav item */ 991 if ( $this->visbility == 'public' || ( $this->visbility != 'public' && $bp->groups->current_group->user_has_access ) ) { 992 if ( $this->enable_nav_item ) { 993 if ( $bp->current_component == $bp->groups->slug && $bp->is_single_item ) 994 bp_core_new_subnav_item( array( 'name' => ( !$this->nav_item_name ) ? $this->name : $this->nav_item_name, 'slug' => $this->slug, 'parent_slug' => BP_GROUPS_SLUG, 'parent_url' => bp_get_group_permalink( $bp->groups->current_group ), 'position' => $this->nav_item_position, 'item_css_id' => 'nav-' . $this->slug, 'screen_function' => array( &$this, '_display_hook' ), 'user_has_access' => $this->enable_nav_item ) ); 995 996 /* When we are viewing the extension display page, set the title and options title */ 997 if ( $bp->current_component == $bp->groups->slug && $bp->is_single_item && $bp->current_action == $this->slug ) { 998 add_action( 'bp_template_content_header', create_function( '', 'echo "' . attribute_escape( $this->name ) . '";' ) ); 999 add_action( 'bp_template_title', create_function( '', 'echo "' . attribute_escape( $this->name ) . '";' ) ); 1000 } 1001 } 1002 1003 /* Hook the group home widget */ 1004 if ( $bp->current_component == $bp->groups->slug && $bp->is_single_item && ( !$bp->current_action || 'home' == $bp->current_action ) ) 1005 add_action( $this->display_hook, array( &$this, 'widget_display' ) ); 1006 } 1007 1105 1008 if ( $this->enable_create_step ) { 1106 1009 /* Insert the group creation step for the new group extension */ … … 1120 1023 /* Catch the edit screen and forward it to the plugin template */ 1121 1024 if ( $bp->current_component == $bp->groups->slug && 'admin' == $bp->current_action && $this->slug == $bp->action_variables[0] ) { 1122 add_action( 'wp', array( &$this, 'edit_screen_save' ));1025 $this->edit_screen_save(); 1123 1026 add_action( 'groups_custom_edit_steps', array( &$this, 'edit_screen' ) ); 1124 1027 … … 1132 1035 } 1133 1036 } 1134 1135 /* When we are viewing a single group, add the group extension nav item */1136 if ( $this->visbility == 'public' || ( $this->visbility != 'public' && $bp->groups->current_group->user_has_access ) ) {1137 if ( $this->enable_nav_item ) {1138 if ( $bp->current_component == $bp->groups->slug && $bp->is_single_item )1139 bp_core_new_subnav_item( array( 'name' => ( !$this->nav_item_name ) ? $this->name : $this->nav_item_name, 'slug' => $this->slug, 'parent_slug' => BP_GROUPS_SLUG, 'parent_url' => bp_get_group_permalink( $bp->groups->current_group ), 'position' => $this->nav_item_position, 'item_css_id' => 'nav-' . $this->slug, 'screen_function' => array( &$this, '_display_hook' ), 'user_has_access' => $this->enable_nav_item ) );1140 1141 /* When we are viewing the extension display page, set the title and options title */1142 if ( $bp->current_component == $bp->groups->slug && $bp->is_single_item && $bp->current_action == $this->slug ) {1143 add_action( 'bp_template_content_header', create_function( '', 'echo "' . attribute_escape( $this->name ) . '";' ) );1144 add_action( 'bp_template_title', create_function( '', 'echo "' . attribute_escape( $this->name ) . '";' ) );1145 }1146 }1147 1148 /* Hook the group home widget */1149 if ( $bp->current_component == $bp->groups->slug && $bp->is_single_item && ( !$bp->current_action || 'home' == $bp->current_action ) )1150 add_action( $this->display_hook, array( &$this, 'widget_display' ) );1151 }1152 1037 } 1153 1038 … … 1165 1050 1166 1051 /* Register the group extension on the plugins_loaded action so we have access to all plugins */ 1167 add_action( ' bp_init', create_function( '', '$extension = new ' . $group_extension_class . '; add_action( "wp", array( &$extension, "_register" ), 2 );' ), 11);1052 add_action( 'init', create_function( '', '$extension = new ' . $group_extension_class . '; add_action( "pre_get_posts", array( &$extension, "_register" ) );' ) ); 1168 1053 } 1169 1054
Note: See TracChangeset
for help on using the changeset viewer.