Changeset 3778 for trunk/bp-users/bp-users-template.php
- Timestamp:
- 01/21/2011 12:03:25 AM (15 years ago)
- File:
-
- 1 edited
-
trunk/bp-users/bp-users-template.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-users/bp-users-template.php
r3767 r3778 1 1 <?php 2 3 4 /*** 5 * Members template loop that will allow you to loop all members or friends of a member 6 * if you pass a user_id. 7 */ 8 9 class BP_Core_Members_Template { 10 var $current_member = -1; 11 var $member_count; 12 var $members; 13 var $member; 14 15 var $in_the_loop; 16 17 var $pag_page; 18 var $pag_num; 19 var $pag_links; 20 var $total_member_count; 21 22 function bp_core_members_template( $type, $page_number, $per_page, $max, $user_id, $search_terms, $include, $populate_extras, $exclude ) { 23 global $bp; 24 25 $this->pag_page = !empty( $_REQUEST['upage'] ) ? intval( $_REQUEST['upage'] ) : (int)$page_number; 26 $this->pag_num = !empty( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : (int)$per_page; 27 $this->type = $type; 28 29 if ( !$this->pag_num ) 30 $this->pag_num = 1; 31 32 if ( isset( $_REQUEST['letter'] ) && '' != $_REQUEST['letter'] ) 33 $this->members = BP_Core_User::get_users_by_letter( $_REQUEST['letter'], $this->pag_num, $this->pag_page, $populate_extras, $exclude ); 34 else if ( false !== $include ) 35 $this->members = BP_Core_User::get_specific_users( $include, $this->pag_num, $this->pag_page, $populate_extras ); 36 else 37 $this->members = bp_core_get_users( array( 'type' => $this->type, 'per_page' => $this->pag_num, 'page' => $this->pag_page, 'user_id' => $user_id, 'include' => $include, 'search_terms' => $search_terms, 'populate_extras' => $populate_extras, 'exclude' => $exclude ) ); 38 39 if ( !$max || $max >= (int)$this->members['total'] ) 40 $this->total_member_count = (int)$this->members['total']; 41 else 42 $this->total_member_count = (int)$max; 43 44 $this->members = $this->members['users']; 45 46 if ( $max ) { 47 if ( $max >= count( $this->members ) ) { 48 $this->member_count = count( $this->members ); 49 } else { 50 $this->member_count = (int)$max; 51 } 52 } else { 53 $this->member_count = count( $this->members ); 54 } 55 56 if ( (int)$this->total_member_count && (int)$this->pag_num ) { 57 $this->pag_links = paginate_links( array( 58 'base' => add_query_arg( 'upage', '%#%' ), 59 'format' => '', 60 'total' => ceil( (int)$this->total_member_count / (int)$this->pag_num ), 61 'current' => (int) $this->pag_page, 62 'prev_text' => '←', 63 'next_text' => '→', 64 'mid_size' => 1 65 ) ); 66 } 67 } 68 69 function has_members() { 70 if ( $this->member_count ) 71 return true; 72 73 return false; 74 } 75 76 function next_member() { 77 $this->current_member++; 78 $this->member = $this->members[$this->current_member]; 79 80 return $this->member; 81 } 82 83 function rewind_members() { 84 $this->current_member = -1; 85 if ( $this->member_count > 0 ) { 86 $this->member = $this->members[0]; 87 } 88 } 89 90 function members() { 91 if ( $this->current_member + 1 < $this->member_count ) { 92 return true; 93 } elseif ( $this->current_member + 1 == $this->member_count ) { 94 do_action('member_loop_end'); 95 // Do some cleaning up after the loop 96 $this->rewind_members(); 97 } 98 99 $this->in_the_loop = false; 100 return false; 101 } 102 103 function the_member() { 104 global $member, $bp; 105 106 $this->in_the_loop = true; 107 $this->member = $this->next_member(); 108 109 if ( 0 == $this->current_member ) // loop has just started 110 do_action('member_loop_start'); 111 } 112 } 113 114 function bp_rewind_members() { 115 global $members_template; 116 117 return $members_template->rewind_members(); 118 } 119 120 function bp_has_members( $args = '' ) { 121 global $bp, $members_template; 122 123 /*** 124 * Set the defaults based on the current page. Any of these will be overridden 125 * if arguments are directly passed into the loop. Custom plugins should always 126 * pass their parameters directly to the loop. 127 */ 128 $type = 'active'; 129 $user_id = 0; 130 $page = 1; 131 $search_terms = null; 132 133 // User filtering 134 if ( !empty( $bp->displayed_user->id ) ) 135 $user_id = $bp->displayed_user->id; 136 137 // type: active ( default ) | random | newest | popular | online | alphabetical 138 $defaults = array( 139 'type' => $type, 140 'page' => $page, 141 'per_page' => 20, 142 'max' => false, 143 144 'include' => false, // Pass a user_id or a list (comma-separated or array) of user_ids to only show these users 145 'exclude' => false, // Pass a user_id or a list (comma-separated or array) of user_ids to exclude these users 146 147 'user_id' => $user_id, // Pass a user_id to only show friends of this user 148 'search_terms' => $search_terms, // Pass search_terms to filter users by their profile data 149 150 'populate_extras' => true // Fetch usermeta? Friend count, last active etc. 151 ); 152 153 $r = wp_parse_args( $args, $defaults ); 154 extract( $r ); 155 156 // Pass a filter if ?s= is set. 157 if ( is_null( $search_terms ) ) { 158 if ( isset( $_REQUEST['s'] ) && !empty( $_REQUEST['s'] ) ) 159 $search_terms = $_REQUEST['s']; 160 else 161 $search_terms = false; 162 } 163 164 if ( $max ) { 165 if ( $per_page > $max ) 166 $per_page = $max; 167 } 168 169 // Make sure we return no members if we looking at friendship requests and there are none. 170 if ( empty( $include ) && bp_is_current_component( $bp->friends->slug ) && 'requests' == $bp->current_action ) 171 return false; 172 173 $members_template = new BP_Core_Members_Template( $type, $page, $per_page, $max, $user_id, $search_terms, $include, (bool)$populate_extras, $exclude ); 174 return apply_filters( 'bp_has_members', $members_template->has_members(), $members_template ); 175 } 176 177 function bp_the_member() { 178 global $members_template; 179 return $members_template->the_member(); 180 } 181 182 function bp_members() { 183 global $members_template; 184 return $members_template->members(); 185 } 186 187 function bp_members_pagination_count() { 188 echo bp_get_members_pagination_count(); 189 } 190 function bp_get_members_pagination_count() { 191 global $bp, $members_template; 192 193 $start_num = intval( ( $members_template->pag_page - 1 ) * $members_template->pag_num ) + 1; 194 $from_num = bp_core_number_format( $start_num ); 195 $to_num = bp_core_number_format( ( $start_num + ( $members_template->pag_num - 1 ) > $members_template->total_member_count ) ? $members_template->total_member_count : $start_num + ( $members_template->pag_num - 1 ) ); 196 $total = bp_core_number_format( $members_template->total_member_count ); 197 198 if ( 'active' == $members_template->type ) 199 $pag = sprintf( __( 'Viewing member %1$s to %2$s (of %3$s active members)', 'buddypress' ), $from_num, $to_num, $total ); 200 else if ( 'popular' == $members_template->type ) 201 $pag = sprintf( __( 'Viewing member %1$s to %2$s (of %3$s members with friends)', 'buddypress' ), $from_num, $to_num, $total ); 202 else if ( 'online' == $members_template->type ) 203 $pag = sprintf( __( 'Viewing member %1$s to %2$s (of %3$s members online)', 'buddypress' ), $from_num, $to_num, $total ); 204 else 205 $pag = sprintf( __( 'Viewing member %1$s to %2$s (of %3$s members)', 'buddypress' ), $from_num, $to_num, $total ); 206 207 return apply_filters( 'bp_members_pagination_count', $pag . '<span class="ajax-loader"></span>' ); 208 } 209 210 function bp_members_pagination_links() { 211 echo bp_get_members_pagination_links(); 212 } 213 function bp_get_members_pagination_links() { 214 global $members_template; 215 216 return apply_filters( 'bp_get_members_pagination_links', $members_template->pag_links ); 217 } 218 219 /** 220 * bp_member_user_id() 221 * 222 * Echo id from bp_get_member_user_id() 223 * 224 * @uses bp_get_member_user_id() 225 */ 226 function bp_member_user_id() { 227 echo bp_get_member_user_id(); 228 } 229 /** 230 * bp_get_member_user_id() 231 * 232 * Get the id of the user in a members loop 233 * 234 * @global object $members_template 235 * @return string Members id 236 */ 237 function bp_get_member_user_id() { 238 global $members_template; 239 240 return apply_filters( 'bp_get_member_user_id', $members_template->member->id ); 241 } 242 243 /** 244 * bp_member_user_nicename() 245 * 246 * Echo nicename from bp_get_member_user_nicename() 247 * 248 * @uses bp_get_member_user_nicename() 249 */ 250 function bp_member_user_nicename() { 251 echo bp_get_member_user_nicename(); 252 } 253 /** 254 * bp_get_member_user_nicename() 255 * 256 * Get the nicename of the user in a members loop 257 * 258 * @global object $members_template 259 * @return string Members nicename 260 */ 261 function bp_get_member_user_nicename() { 262 global $members_template; 263 return apply_filters( 'bp_get_member_user_nicename', $members_template->member->user_nicename ); 264 } 265 266 /** 267 * bp_member_user_login() 268 * 269 * Echo login from bp_get_member_user_login() 270 * 271 * @uses bp_get_member_user_login() 272 */ 273 function bp_member_user_login() { 274 echo bp_get_member_user_login(); 275 } 276 /** 277 * bp_get_member_user_login() 278 * 279 * Get the login of the user in a members loop 280 * 281 * @global object $members_template 282 * @return string Members login 283 */ 284 function bp_get_member_user_login() { 285 global $members_template; 286 return apply_filters( 'bp_get_member_user_login', $members_template->member->user_login ); 287 } 288 289 /** 290 * bp_member_user_email() 291 * 292 * Echo email address from bp_get_member_user_email() 293 * 294 * @uses bp_get_member_user_email() 295 */ 296 function bp_member_user_email() { 297 echo bp_get_member_user_email(); 298 } 299 /** 300 * bp_get_member_user_email() 301 * 302 * Get the email address of the user in a members loop 303 * 304 * @global object $members_template 305 * @return string Members email address 306 */ 307 function bp_get_member_user_email() { 308 global $members_template; 309 return apply_filters( 'bp_get_member_user_email', $members_template->member->user_email ); 310 } 311 312 function bp_member_is_loggedin_user() { 313 global $bp, $members_template; 314 return apply_filters( 'bp_member_is_loggedin_user', $bp->loggedin_user->id == $members_template->member->id ? true : false ); 315 } 316 317 function bp_member_avatar( $args = '' ) { 318 echo apply_filters( 'bp_member_avatar', bp_get_member_avatar( $args ) ); 319 } 320 function bp_get_member_avatar( $args = '' ) { 321 global $bp, $members_template; 322 323 $defaults = array( 324 'type' => 'thumb', 325 'width' => false, 326 'height' => false, 327 'class' => 'avatar', 328 'id' => false, 329 'alt' => __( 'Profile picture of %s', 'buddypress' ) 330 ); 331 332 $r = wp_parse_args( $args, $defaults ); 333 extract( $r, EXTR_SKIP ); 334 335 return apply_filters( 'bp_get_member_avatar', bp_core_fetch_avatar( array( 'item_id' => $members_template->member->id, 'type' => $type, 'alt' => $alt, 'css_id' => $id, 'class' => $class, 'width' => $width, 'height' => $height, 'email' => $members_template->member->user_email ) ) ); 336 } 337 338 function bp_member_permalink() { 339 echo bp_get_member_permalink(); 340 } 341 function bp_get_member_permalink() { 342 global $members_template; 343 344 return apply_filters( 'bp_get_member_permalink', bp_core_get_user_domain( $members_template->member->id, $members_template->member->user_nicename, $members_template->member->user_login ) ); 345 } 346 function bp_member_link() { echo bp_get_member_permalink(); } 347 function bp_get_member_link() { return bp_get_member_permalink(); } 348 349 function bp_member_name() { 350 echo apply_filters( 'bp_member_name', bp_get_member_name() ); 351 } 352 function bp_get_member_name() { 353 global $members_template; 354 355 if ( empty($members_template->member->fullname) ) 356 $members_template->member->fullname = $members_template->member->display_name; 357 358 return apply_filters( 'bp_get_member_name', $members_template->member->fullname ); 359 } 360 add_filter( 'bp_get_member_name', 'wp_filter_kses' ); 361 add_filter( 'bp_get_member_name', 'stripslashes' ); 362 add_filter( 'bp_get_member_name', 'strip_tags' ); 363 364 function bp_member_last_active() { 365 echo bp_get_member_last_active(); 366 } 367 function bp_get_member_last_active() { 368 global $members_template; 369 370 $last_activity = bp_core_get_last_activity( $members_template->member->last_activity, __( 'active %s ago', 'buddypress' ) ); 371 372 return apply_filters( 'bp_member_last_active', $last_activity ); 373 } 374 375 function bp_member_latest_update( $args = '' ) { 376 echo bp_get_member_latest_update( $args ); 377 } 378 function bp_get_member_latest_update( $args = '' ) { 379 global $members_template, $bp; 380 381 $defaults = array( 382 'length' => 70 383 ); 384 385 $r = wp_parse_args( $args, $defaults ); 386 extract( $r, EXTR_SKIP ); 387 388 if ( !isset( $members_template->member->latest_update ) || !$update = maybe_unserialize( $members_template->member->latest_update ) ) 389 return false; 390 391 $update_content = apply_filters( 'bp_get_activity_latest_update', strip_tags( bp_create_excerpt( $update['content'], $length ) ) ); 392 393 if ( !empty( $update['id'] ) ) 394 $update_content .= ' · <a href="' . $bp->root_domain . '/' . $bp->activity->root_slug . '/p/' . $update['id'] . '">' . __( 'View', 'buddypress' ) . '</a>'; 395 396 return apply_filters( 'bp_get_member_latest_update', $update_content ); 397 } 398 399 function bp_member_profile_data( $args = '' ) { 400 echo bp_get_member_profile_data( $args ); 401 } 402 function bp_get_member_profile_data( $args = '' ) { 403 global $members_template; 404 405 if ( !bp_is_active( 'xprofile' ) ) 406 return false; 407 408 $defaults = array( 409 'field' => false, // Field name 410 ); 411 412 $r = wp_parse_args( $args, $defaults ); 413 extract( $r, EXTR_SKIP ); 414 415 // Populate the user if it hasn't been already. 416 if ( empty( $members_template->member->profile_data ) && method_exists( 'BP_XProfile_ProfileData', 'get_all_for_user' ) ) 417 $members_template->member->profile_data = BP_XProfile_ProfileData::get_all_for_user( $members_template->member->id ); 418 419 $data = xprofile_format_profile_field( $members_template->member->profile_data[$field]['field_type'], $members_template->member->profile_data[$field]['field_data'] ); 420 421 return apply_filters( 'bp_get_member_profile_data', $data ); 422 } 423 424 function bp_member_registered() { 425 echo bp_get_member_registered(); 426 } 427 function bp_get_member_registered() { 428 global $members_template; 429 430 $registered = esc_attr( bp_core_get_last_activity( $members_template->member->user_registered, __( 'registered %s ago', 'buddypress' ) ) ); 431 432 return apply_filters( 'bp_member_last_active', $registered ); 433 } 434 435 function bp_member_random_profile_data() { 436 global $members_template; 437 438 if ( function_exists( 'xprofile_get_random_profile_data' ) ) { ?> 439 <?php $random_data = xprofile_get_random_profile_data( $members_template->member->id, true ); ?> 440 <strong><?php echo wp_filter_kses( $random_data[0]->name ) ?></strong> 441 <?php echo wp_filter_kses( $random_data[0]->value ) ?> 442 <?php } 443 } 444 445 function bp_member_hidden_fields() { 446 if ( isset( $_REQUEST['s'] ) ) 447 echo '<input type="hidden" id="search_terms" value="' . esc_attr( $_REQUEST['s'] ) . '" name="search_terms" />'; 448 449 if ( isset( $_REQUEST['letter'] ) ) 450 echo '<input type="hidden" id="selected_letter" value="' . esc_attr( $_REQUEST['letter'] ) . '" name="selected_letter" />'; 451 452 if ( isset( $_REQUEST['members_search'] ) ) 453 echo '<input type="hidden" id="search_terms" value="' . esc_attr( $_REQUEST['members_search'] ) . '" name="search_terms" />'; 454 } 455 456 function bp_directory_members_search_form() { 457 global $bp; 458 459 $default_search_value = bp_get_search_default_text(); 460 $search_value = !empty( $_REQUEST['s'] ) ? stripslashes( $_REQUEST['s'] ) : $default_search_value; ?> 461 462 <form action="" method="get" id="search-members-form"> 463 <label><input type="text" name="s" id="members_search" value="<?php echo esc_attr( $search_value ) ?>" onfocus="if (this.value == '<?php echo $default_search_value ?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php echo $default_search_value ?>';}" /></label> 464 <input type="submit" id="members_search_submit" name="members_search_submit" value="<?php _e( 'Search', 'buddypress' ) ?>" /> 465 </form> 466 467 <?php 468 } 469 470 function bp_total_site_member_count() { 471 echo bp_get_total_site_member_count(); 472 } 473 function bp_get_total_site_member_count() { 474 return apply_filters( 'bp_get_total_site_member_count', bp_core_number_format( bp_core_get_total_member_count() ) ); 475 } 476 477 478 /** Navigation and other misc template tags **/ 479 480 /** 481 * bp_get_nav() 482 * TEMPLATE TAG 483 * 484 * Uses the $bp->bp_nav global to render out the navigation within a BuddyPress install. 485 * Each component adds to this navigation array within its own [component_name]_setup_nav() function. 486 * 487 * This navigation array is the top level navigation, so it contains items such as: 488 * [Blog, Profile, Messages, Groups, Friends] ... 489 * 490 * The function will also analyze the current component the user is in, to determine whether 491 * or not to highlight a particular nav item. 492 * 493 * @package BuddyPress Core 494 * @todo Move to a back-compat file? 495 * @deprecated Does not seem to be called anywhere in the core 496 * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals() 497 */ 498 function bp_get_loggedin_user_nav() { 499 global $bp, $current_blog; 500 501 // Loop through each navigation item 502 foreach( (array) $bp->bp_nav as $nav_item ) { 503 // If the current component matches the nav item id, then add a highlight CSS class. 504 if ( !bp_is_directory() && $bp->active_components[$bp->current_component] == $nav_item['css_id'] ) 505 $selected = ' class="current selected"'; 506 else 507 $selected = ''; 508 509 /* If we are viewing another person (current_userid does not equal loggedin_user->id) 510 then check to see if the two users are friends. if they are, add a highlight CSS class 511 to the friends nav item if it exists. */ 512 if ( !bp_is_my_profile() && $bp->displayed_user->id ) { 513 $selected = ''; 514 515 if ( bp_is_active( 'friends' ) ) { 516 if ( $nav_item['css_id'] == $bp->friends->id ) { 517 if ( friends_check_friendship( $bp->loggedin_user->id, $bp->displayed_user->id ) ) 518 $selected = ' class="current selected"'; 519 } 520 } 521 } 522 523 // echo out the final list item 524 echo apply_filters( 'bp_get_loggedin_user_nav_' . $nav_item['css_id'], '<li id="li-nav-' . $nav_item['css_id'] . '" ' . $selected . '><a id="my-' . $nav_item['css_id'] . '" href="' . $nav_item['link'] . '">' . $nav_item['name'] . '</a></li>', &$nav_item ); 525 } 526 527 // Always add a log out list item to the end of the navigation 528 if ( function_exists( 'wp_logout_url' ) ) 529 $logout_link = '<li><a id="wp-logout" href="' . wp_logout_url( $bp->root_domain ) . '">' . __( 'Log Out', 'buddypress' ) . '</a></li>'; 530 else 531 $logout_link = '<li><a id="wp-logout" href="' . site_url() . '/wp-login.php?action=logout&redirect_to=' . $bp->root_domain . '">' . __( 'Log Out', 'buddypress' ) . '</a></li>'; 532 533 echo apply_filters( 'bp_logout_nav_link', $logout_link ); 534 } 535 536 /** 537 * Uses the $bp->bp_nav global to render out the user navigation when viewing another user other than 538 * yourself. 539 * 540 * @package BuddyPress Core 541 * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals() 542 */ 543 function bp_get_displayed_user_nav() { 544 global $bp; 545 546 foreach ( (array)$bp->bp_nav as $user_nav_item ) { 547 if ( !$user_nav_item['show_for_displayed_user'] && !bp_is_my_profile() ) 548 continue; 549 550 if ( $bp->current_component == $user_nav_item['slug'] ) 551 $selected = ' class="current selected"'; 552 else 553 $selected = ''; 554 555 if ( $bp->loggedin_user->domain ) 556 $link = str_replace( $bp->loggedin_user->domain, $bp->displayed_user->domain, $user_nav_item['link'] ); 557 else 558 $link = $bp->displayed_user->domain . $user_nav_item['link']; 559 560 echo apply_filters( 'bp_get_displayed_user_nav_' . $user_nav_item['css_id'], '<li id="' . $user_nav_item['css_id'] . '-personal-li" ' . $selected . '><a id="user-' . $user_nav_item['css_id'] . '" href="' . $link . '">' . $user_nav_item['name'] . '</a></li>', &$user_nav_item ); 561 } 562 } 563 564 /** Avatars *******************************************************************/ 565 566 function bp_loggedin_user_avatar( $args = '' ) { 567 echo bp_get_loggedin_user_avatar( $args ); 568 } 569 function bp_get_loggedin_user_avatar( $args = '' ) { 570 global $bp; 571 572 $defaults = array( 573 'type' => 'thumb', 574 'width' => false, 575 'height' => false, 576 'html' => true, 577 'alt' => __( 'Profile picture of %s', 'buddypress' ) 578 ); 579 580 $r = wp_parse_args( $args, $defaults ); 581 extract( $r, EXTR_SKIP ); 582 583 return apply_filters( 'bp_get_loggedin_user_avatar', bp_core_fetch_avatar( array( 'item_id' => $bp->loggedin_user->id, 'type' => $type, 'width' => $width, 'height' => $height, 'html' => $html, 'alt' => $alt ) ) ); 584 } 585 586 function bp_displayed_user_avatar( $args = '' ) { 587 echo bp_get_displayed_user_avatar( $args ); 588 } 589 function bp_get_displayed_user_avatar( $args = '' ) { 590 global $bp; 591 592 $defaults = array( 593 'type' => 'thumb', 594 'width' => false, 595 'height' => false, 596 'html' => true, 597 'alt' => __( 'Profile picture of %s', 'buddypress' ) 598 ); 599 600 $r = wp_parse_args( $args, $defaults ); 601 extract( $r, EXTR_SKIP ); 602 603 return apply_filters( 'bp_get_displayed_user_avatar', bp_core_fetch_avatar( array( 'item_id' => $bp->displayed_user->id, 'type' => $type, 'width' => $width, 'height' => $height, 'html' => $html, 'alt' => $alt ) ) ); 604 } 2 605 3 606 function bp_displayed_user_email() { … … 16 619 } 17 620 621 function bp_last_activity( $user_id = 0 ) { 622 echo apply_filters( 'bp_last_activity', bp_get_last_activity( $user_id ) ); 623 } 624 function bp_get_last_activity( $user_id = 0 ) { 625 global $bp; 626 627 if ( empty( $user_id ) ) 628 $user_id = $bp->displayed_user->id; 629 630 $last_activity = bp_core_get_last_activity( get_user_meta( $user_id, 'last_activity', true ), __('active %s ago', 'buddypress') ); 631 632 return apply_filters( 'bp_get_last_activity', $last_activity ); 633 } 634 635 function bp_user_has_access() { 636 global $bp; 637 638 if ( is_super_admin() || is_user_logged_in() && $bp->loggedin_user->id == $bp->displayed_user->id ) 639 $has_access = true; 640 else 641 $has_access = false; 642 643 return apply_filters( 'bp_user_has_access', $has_access ); 644 } 645 646 function bp_user_firstname() { 647 echo bp_get_user_firstname(); 648 } 649 function bp_get_user_firstname( $name = false ) { 650 global $bp; 651 652 // Try to get displayed user 653 if ( empty( $name ) ) 654 $name = $bp->displayed_user->fullname; 655 656 // Fall back on logged in user 657 if ( empty( $name ) ) 658 $name = $bp->loggedin_user->fullname; 659 660 $fullname = (array)explode( ' ', $name ); 661 662 return apply_filters( 'bp_get_user_firstname', $fullname[0], $fullname ); 663 } 664 665 function bp_loggedin_user_link() { 666 echo bp_get_loggedin_user_link(); 667 } 668 function bp_get_loggedin_user_link() { 669 global $bp; 670 671 return apply_filters( 'bp_get_loggedin_user_link', $bp->loggedin_user->domain ); 672 } 673 674 /* @todo Deprecate incorrectly named function? */ 675 function bp_loggedinuser_link() { 676 global $bp; 677 678 if ( $link = bp_core_get_userlink( $bp->loggedin_user->id ) ) 679 echo apply_filters( 'bp_loggedin_user_link', $link ); 680 } 681 682 function bp_displayed_user_link() { 683 echo bp_get_displayed_user_link(); 684 } 685 function bp_get_displayed_user_link() { 686 global $bp; 687 688 return apply_filters( 'bp_get_displayed_user_link', $bp->displayed_user->domain ); 689 } 690 function bp_user_link() { bp_displayed_user_link(); } // Deprecated. 691 692 function bp_displayed_user_id() { 693 global $bp; 694 return apply_filters( 'bp_displayed_user_id', $bp->displayed_user->id ); 695 } 696 function bp_current_user_id() { return bp_displayed_user_id(); } 697 698 function bp_loggedin_user_id() { 699 global $bp; 700 return apply_filters( 'bp_loggedin_user_id', $bp->loggedin_user->id ); 701 } 702 703 function bp_displayed_user_domain() { 704 global $bp; 705 return apply_filters( 'bp_displayed_user_domain', $bp->displayed_user->domain ); 706 } 707 708 function bp_loggedin_user_domain() { 709 global $bp; 710 return apply_filters( 'bp_loggedin_user_domain', $bp->loggedin_user->domain ); 711 } 712 713 function bp_displayed_user_fullname() { 714 echo bp_get_displayed_user_fullname(); 715 } 716 function bp_get_displayed_user_fullname() { 717 global $bp; 718 719 return apply_filters( 'bp_displayed_user_fullname', $bp->displayed_user->fullname ); 720 } 721 function bp_user_fullname() { echo bp_get_displayed_user_fullname(); } 722 723 724 function bp_loggedin_user_fullname() { 725 echo bp_get_loggedin_user_fullname(); 726 } 727 function bp_get_loggedin_user_fullname() { 728 global $bp; 729 return apply_filters( 'bp_get_loggedin_user_fullname', $bp->loggedin_user->fullname ); 730 } 731 732 function bp_displayed_user_username() { 733 echo bp_get_displayed_user_username(); 734 } 735 function bp_get_displayed_user_username() { 736 global $bp; 737 return apply_filters( 'bp_get_displayed_user_username', bp_core_get_username( $bp->displayed_user->id, $bp->displayed_user->userdata->user_nicename, $bp->displayed_user->userdata->user_login ) ); 738 } 739 740 function bp_loggedin_user_username() { 741 echo bp_get_loggedin_user_username(); 742 } 743 function bp_get_loggedin_user_username() { 744 global $bp; 745 return apply_filters( 'bp_get_loggedin_user_username', bp_core_get_username( $bp->loggedin_user->id, $bp->loggedin_user->userdata->user_nicename, $bp->loggedin_user->userdata->user_login ) ); 746 } 747 748 /** Signup Form ***************************************************************/ 749 750 function bp_has_custom_signup_page() { 751 if ( locate_template( array( 'register.php' ), false ) || locate_template( array( '/registration/register.php' ), false ) ) 752 return true; 753 754 return false; 755 } 756 757 function bp_signup_page() { 758 echo bp_get_signup_page(); 759 } 760 function bp_get_signup_page() { 761 global $bp; 762 763 if ( bp_has_custom_signup_page() ) 764 $page = $bp->root_domain . '/' . BP_REGISTER_SLUG; 765 else 766 $page = $bp->root_domain . '/wp-signup.php'; 767 768 return apply_filters( 'bp_get_signup_page', $page ); 769 } 770 771 function bp_has_custom_activation_page() { 772 if ( locate_template( array( 'activate.php' ), false ) || locate_template( array( '/registration/activate.php' ), false ) ) 773 return true; 774 775 return false; 776 } 777 778 function bp_activation_page() { 779 echo bp_get_activation_page(); 780 } 781 function bp_get_activation_page() { 782 global $bp; 783 784 if ( bp_has_custom_activation_page() ) 785 $page = trailingslashit( $bp->root_domain ) . BP_ACTIVATION_SLUG; 786 else 787 $page = trailingslashit( $bp->root_domain ) . 'wp-activate.php'; 788 789 return apply_filters( 'bp_get_activation_page', $page ); 790 } 791 792 function bp_signup_username_value() { 793 echo bp_get_signup_username_value(); 794 } 795 function bp_get_signup_username_value() { 796 $value = ''; 797 if ( isset( $_POST['signup_username'] ) ) 798 $value = $_POST['signup_username']; 799 800 return apply_filters( 'bp_get_signup_username_value', $value ); 801 } 802 803 function bp_signup_email_value() { 804 echo bp_get_signup_email_value(); 805 } 806 function bp_get_signup_email_value() { 807 $value = ''; 808 if ( isset( $_POST['signup_email'] ) ) 809 $value = $_POST['signup_email']; 810 811 return apply_filters( 'bp_get_signup_email_value', $value ); 812 } 813 814 function bp_signup_with_blog_value() { 815 echo bp_get_signup_with_blog_value(); 816 } 817 function bp_get_signup_with_blog_value() { 818 $value = ''; 819 if ( isset( $_POST['signup_with_blog'] ) ) 820 $value = $_POST['signup_with_blog']; 821 822 return apply_filters( 'bp_get_signup_with_blog_value', $value ); 823 } 824 825 function bp_signup_blog_url_value() { 826 echo bp_get_signup_blog_url_value(); 827 } 828 function bp_get_signup_blog_url_value() { 829 $value = ''; 830 if ( isset( $_POST['signup_blog_url'] ) ) 831 $value = $_POST['signup_blog_url']; 832 833 return apply_filters( 'bp_get_signup_blog_url_value', $value ); 834 } 835 836 function bp_signup_blog_title_value() { 837 echo bp_get_signup_blog_title_value(); 838 } 839 function bp_get_signup_blog_title_value() { 840 $value = ''; 841 if ( isset( $_POST['signup_blog_title'] ) ) 842 $value = $_POST['signup_blog_title']; 843 844 return apply_filters( 'bp_get_signup_blog_title_value', $value ); 845 } 846 847 function bp_signup_blog_privacy_value() { 848 echo bp_get_signup_blog_privacy_value(); 849 } 850 function bp_get_signup_blog_privacy_value() { 851 $value = ''; 852 if ( isset( $_POST['signup_blog_privacy'] ) ) 853 $value = $_POST['signup_blog_privacy']; 854 855 return apply_filters( 'bp_get_signup_blog_privacy_value', $value ); 856 } 857 858 function bp_signup_avatar_dir_value() { 859 echo bp_get_signup_avatar_dir_value(); 860 } 861 function bp_get_signup_avatar_dir_value() { 862 global $bp; 863 864 return apply_filters( 'bp_get_signup_avatar_dir_value', $bp->signup->avatar_dir ); 865 } 866 867 function bp_current_signup_step() { 868 echo bp_get_current_signup_step(); 869 } 870 function bp_get_current_signup_step() { 871 global $bp; 872 873 return $bp->signup->step; 874 } 875 876 function bp_signup_avatar( $args = '' ) { 877 echo bp_get_signup_avatar( $args ); 878 } 879 function bp_get_signup_avatar( $args = '' ) { 880 global $bp; 881 882 $defaults = array( 883 'size' => BP_AVATAR_FULL_WIDTH, 884 'class' => 'avatar', 885 'alt' => __( 'Your Avatar', 'buddypress' ) 886 ); 887 888 $r = wp_parse_args( $args, $defaults ); 889 extract( $r, EXTR_SKIP ); 890 891 if ( !empty( $_POST['signup_avatar_dir'] ) ) { 892 $signup_avatar_dir = $_POST['signup_avatar_dir']; 893 } else if ( !empty( $bp->signup->avatar_dir ) ) { 894 $signup_avatar_dir = $bp->signup->avatar_dir; 895 } 896 897 if ( empty( $signup_avatar_dir ) ) { 898 if ( empty( $bp->grav_default->user ) ) { 899 $default_grav = 'wavatar'; 900 } else if ( 'mystery' == $bp->grav_default->user ) { 901 $default_grav = apply_filters( 'bp_core_mysteryman_src', BP_PLUGIN_URL . '/bp-core/images/mystery-man.jpg' ); 902 } else { 903 $default_grav = $bp->grav_default->user; 904 } 905 906 $gravatar_url = apply_filters( 'bp_gravatar_url', 'http://www.gravatar.com/avatar/' ); 907 $gravatar_img = '<img src="' . $gravatar_url . md5( strtolower( $_POST['signup_email'] ) ) . '?d=' . $default_grav . '&s=' . $size . '" width="' . $size . '" height="' . $size . '" alt="' . $alt . '" class="' . $class . '" />'; 908 } else { 909 $gravatar_img = bp_core_fetch_avatar( array( 'item_id' => $signup_avatar_dir, 'object' => 'signup', 'avatar_dir' => 'avatars/signups', 'type' => 'full', 'width' => $size, 'height' => $size, 'alt' => $alt, 'class' => $class ) ); 910 } 911 912 return apply_filters( 'bp_get_signup_avatar', $gravatar_img ); 913 } 914 915 function bp_signup_allowed() { 916 echo bp_get_signup_allowed(); 917 } 918 function bp_get_signup_allowed() { 919 global $bp; 920 921 if ( is_multisite() ) { 922 if ( in_array( $bp->site_options['registration'], array( 'all', 'user' ) ) ) 923 return true; 924 } else { 925 if ( (int)get_option( 'users_can_register') ) 926 return true; 927 } 928 return false; 929 } 930 931 /** 932 * Hook member activity feed to <head> 933 * 934 * @since 1.3 935 */ 936 function bp_users_activity_feed() { 937 if ( !bp_is_active( 'activity' ) || !bp_is_member() ) 938 return; ?> 939 940 <link rel="alternate" type="application/rss+xml" title="<?php bloginfo( 'name' ) ?> | <?php bp_displayed_user_fullname() ?> | <?php _e( 'Activity RSS Feed', 'buddypress' ) ?>" href="<?php bp_member_activity_feed_link() ?>" /> 941 942 <?php 943 } 944 add_action( 'bp_head', 'bp_users_activity_feed' ); 945 18 946 ?>
Note: See TracChangeset
for help on using the changeset viewer.