Changeset 3778 for trunk/bp-core/bp-core-template.php
- Timestamp:
- 01/21/2011 12:03:25 AM (15 years ago)
- File:
-
- 1 edited
-
trunk/bp-core/bp-core-template.php (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-core/bp-core-template.php
r3767 r3778 1 1 <?php 2 /***3 * Members template loop that will allow you to loop all members or friends of a member4 * if you pass a user_id.5 */6 7 class BP_Core_Members_Template {8 var $current_member = -1;9 var $member_count;10 var $members;11 var $member;12 13 var $in_the_loop;14 15 var $pag_page;16 var $pag_num;17 var $pag_links;18 var $total_member_count;19 20 function bp_core_members_template( $type, $page_number, $per_page, $max, $user_id, $search_terms, $include, $populate_extras, $exclude ) {21 global $bp;22 23 $this->pag_page = !empty( $_REQUEST['upage'] ) ? intval( $_REQUEST['upage'] ) : (int)$page_number;24 $this->pag_num = !empty( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : (int)$per_page;25 $this->type = $type;26 27 if ( !$this->pag_num )28 $this->pag_num = 1;29 30 if ( isset( $_REQUEST['letter'] ) && '' != $_REQUEST['letter'] )31 $this->members = BP_Core_User::get_users_by_letter( $_REQUEST['letter'], $this->pag_num, $this->pag_page, $populate_extras, $exclude );32 else if ( false !== $include )33 $this->members = BP_Core_User::get_specific_users( $include, $this->pag_num, $this->pag_page, $populate_extras );34 else35 $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 ) );36 37 if ( !$max || $max >= (int)$this->members['total'] )38 $this->total_member_count = (int)$this->members['total'];39 else40 $this->total_member_count = (int)$max;41 42 $this->members = $this->members['users'];43 44 if ( $max ) {45 if ( $max >= count( $this->members ) ) {46 $this->member_count = count( $this->members );47 } else {48 $this->member_count = (int)$max;49 }50 } else {51 $this->member_count = count( $this->members );52 }53 54 if ( (int)$this->total_member_count && (int)$this->pag_num ) {55 $this->pag_links = paginate_links( array(56 'base' => add_query_arg( 'upage', '%#%' ),57 'format' => '',58 'total' => ceil( (int)$this->total_member_count / (int)$this->pag_num ),59 'current' => (int) $this->pag_page,60 'prev_text' => '←',61 'next_text' => '→',62 'mid_size' => 163 ) );64 }65 }66 67 function has_members() {68 if ( $this->member_count )69 return true;70 71 return false;72 }73 74 function next_member() {75 $this->current_member++;76 $this->member = $this->members[$this->current_member];77 78 return $this->member;79 }80 81 function rewind_members() {82 $this->current_member = -1;83 if ( $this->member_count > 0 ) {84 $this->member = $this->members[0];85 }86 }87 88 function members() {89 if ( $this->current_member + 1 < $this->member_count ) {90 return true;91 } elseif ( $this->current_member + 1 == $this->member_count ) {92 do_action('member_loop_end');93 // Do some cleaning up after the loop94 $this->rewind_members();95 }96 97 $this->in_the_loop = false;98 return false;99 }100 101 function the_member() {102 global $member, $bp;103 104 $this->in_the_loop = true;105 $this->member = $this->next_member();106 107 if ( 0 == $this->current_member ) // loop has just started108 do_action('member_loop_start');109 }110 }111 112 function bp_rewind_members() {113 global $members_template;114 115 return $members_template->rewind_members();116 }117 118 function bp_has_members( $args = '' ) {119 global $bp, $members_template;120 121 /***122 * Set the defaults based on the current page. Any of these will be overridden123 * if arguments are directly passed into the loop. Custom plugins should always124 * pass their parameters directly to the loop.125 */126 $type = 'active';127 $user_id = false;128 $page = 1;129 $search_terms = null;130 131 // User filtering132 if ( !empty( $bp->displayed_user->id ) )133 $user_id = $bp->displayed_user->id;134 135 // type: active ( default ) | random | newest | popular | online | alphabetical136 $defaults = array(137 'type' => $type,138 'page' => $page,139 'per_page' => 20,140 'max' => false,141 142 'include' => false, // Pass a user_id or a list (comma-separated or array) of user_ids to only show these users143 'exclude' => false, // Pass a user_id or a list (comma-separated or array) of user_ids to exclude these users144 145 'user_id' => $user_id, // Pass a user_id to only show friends of this user146 'search_terms' => $search_terms, // Pass search_terms to filter users by their profile data147 148 'populate_extras' => true // Fetch usermeta? Friend count, last active etc.149 );150 151 $r = wp_parse_args( $args, $defaults );152 extract( $r );153 154 // Pass a filter if ?s= is set.155 if ( is_null( $search_terms ) ) {156 if ( isset( $_REQUEST['s'] ) && !empty( $_REQUEST['s'] ) )157 $search_terms = $_REQUEST['s'];158 else159 $search_terms = false;160 }161 162 if ( $max ) {163 if ( $per_page > $max )164 $per_page = $max;165 }166 167 // Make sure we return no members if we looking at friendship requests and there are none.168 if ( empty( $include ) && bp_is_current_component( $bp->friends->slug ) && 'requests' == $bp->current_action )169 return false;170 171 $members_template = new BP_Core_Members_Template( $type, $page, $per_page, $max, $user_id, $search_terms, $include, (bool)$populate_extras, $exclude );172 return apply_filters( 'bp_has_members', $members_template->has_members(), $members_template );173 }174 175 function bp_the_member() {176 global $members_template;177 return $members_template->the_member();178 }179 180 function bp_members() {181 global $members_template;182 return $members_template->members();183 }184 185 function bp_members_pagination_count() {186 echo bp_get_members_pagination_count();187 }188 function bp_get_members_pagination_count() {189 global $bp, $members_template;190 191 $start_num = intval( ( $members_template->pag_page - 1 ) * $members_template->pag_num ) + 1;192 $from_num = bp_core_number_format( $start_num );193 $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 ) );194 $total = bp_core_number_format( $members_template->total_member_count );195 196 if ( 'active' == $members_template->type )197 $pag = sprintf( __( 'Viewing member %1$s to %2$s (of %3$s active members)', 'buddypress' ), $from_num, $to_num, $total );198 else if ( 'popular' == $members_template->type )199 $pag = sprintf( __( 'Viewing member %1$s to %2$s (of %3$s members with friends)', 'buddypress' ), $from_num, $to_num, $total );200 else if ( 'online' == $members_template->type )201 $pag = sprintf( __( 'Viewing member %1$s to %2$s (of %3$s members online)', 'buddypress' ), $from_num, $to_num, $total );202 else203 $pag = sprintf( __( 'Viewing member %1$s to %2$s (of %3$s members)', 'buddypress' ), $from_num, $to_num, $total );204 205 return apply_filters( 'bp_members_pagination_count', $pag . '<span class="ajax-loader"></span>' );206 }207 208 function bp_members_pagination_links() {209 echo bp_get_members_pagination_links();210 }211 function bp_get_members_pagination_links() {212 global $members_template;213 214 return apply_filters( 'bp_get_members_pagination_links', $members_template->pag_links );215 }216 217 /**218 * bp_member_user_id()219 *220 * Echo id from bp_get_member_user_id()221 *222 * @uses bp_get_member_user_id()223 */224 function bp_member_user_id() {225 echo bp_get_member_user_id();226 }227 /**228 * bp_get_member_user_id()229 *230 * Get the id of the user in a members loop231 *232 * @global object $members_template233 * @return string Members id234 */235 function bp_get_member_user_id() {236 global $members_template;237 238 return apply_filters( 'bp_get_member_user_id', $members_template->member->id );239 }240 241 /**242 * bp_member_user_nicename()243 *244 * Echo nicename from bp_get_member_user_nicename()245 *246 * @uses bp_get_member_user_nicename()247 */248 function bp_member_user_nicename() {249 echo bp_get_member_user_nicename();250 }251 /**252 * bp_get_member_user_nicename()253 *254 * Get the nicename of the user in a members loop255 *256 * @global object $members_template257 * @return string Members nicename258 */259 function bp_get_member_user_nicename() {260 global $members_template;261 return apply_filters( 'bp_get_member_user_nicename', $members_template->member->user_nicename );262 }263 264 /**265 * bp_member_user_login()266 *267 * Echo login from bp_get_member_user_login()268 *269 * @uses bp_get_member_user_login()270 */271 function bp_member_user_login() {272 echo bp_get_member_user_login();273 }274 /**275 * bp_get_member_user_login()276 *277 * Get the login of the user in a members loop278 *279 * @global object $members_template280 * @return string Members login281 */282 function bp_get_member_user_login() {283 global $members_template;284 return apply_filters( 'bp_get_member_user_login', $members_template->member->user_login );285 }286 287 /**288 * bp_member_user_email()289 *290 * Echo email address from bp_get_member_user_email()291 *292 * @uses bp_get_member_user_email()293 */294 function bp_member_user_email() {295 echo bp_get_member_user_email();296 }297 /**298 * bp_get_member_user_email()299 *300 * Get the email address of the user in a members loop301 *302 * @global object $members_template303 * @return string Members email address304 */305 function bp_get_member_user_email() {306 global $members_template;307 return apply_filters( 'bp_get_member_user_email', $members_template->member->user_email );308 }309 310 function bp_member_is_loggedin_user() {311 global $bp, $members_template;312 return apply_filters( 'bp_member_is_loggedin_user', $bp->loggedin_user->id == $members_template->member->id ? true : false );313 }314 315 function bp_member_avatar( $args = '' ) {316 echo apply_filters( 'bp_member_avatar', bp_get_member_avatar( $args ) );317 }318 function bp_get_member_avatar( $args = '' ) {319 global $bp, $members_template;320 321 $defaults = array(322 'type' => 'thumb',323 'width' => false,324 'height' => false,325 'class' => 'avatar',326 'id' => false,327 'alt' => __( 'Profile picture of %s', 'buddypress' )328 );329 330 $r = wp_parse_args( $args, $defaults );331 extract( $r, EXTR_SKIP );332 333 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 ) ) );334 }335 336 function bp_member_permalink() {337 echo bp_get_member_permalink();338 }339 function bp_get_member_permalink() {340 global $members_template;341 342 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 ) );343 }344 function bp_member_link() { echo bp_get_member_permalink(); }345 function bp_get_member_link() { return bp_get_member_permalink(); }346 347 function bp_member_name() {348 echo apply_filters( 'bp_member_name', bp_get_member_name() );349 }350 function bp_get_member_name() {351 global $members_template;352 353 if ( empty($members_template->member->fullname) )354 $members_template->member->fullname = $members_template->member->display_name;355 356 return apply_filters( 'bp_get_member_name', $members_template->member->fullname );357 }358 add_filter( 'bp_get_member_name', 'wp_filter_kses' );359 add_filter( 'bp_get_member_name', 'stripslashes' );360 add_filter( 'bp_get_member_name', 'strip_tags' );361 362 function bp_member_last_active() {363 echo bp_get_member_last_active();364 }365 function bp_get_member_last_active() {366 global $members_template;367 368 $last_activity = bp_core_get_last_activity( $members_template->member->last_activity, __( 'active %s ago', 'buddypress' ) );369 370 return apply_filters( 'bp_member_last_active', $last_activity );371 }372 373 function bp_member_latest_update( $args = '' ) {374 echo bp_get_member_latest_update( $args );375 }376 function bp_get_member_latest_update( $args = '' ) {377 global $members_template, $bp;378 379 $defaults = array(380 'length' => 70381 );382 383 $r = wp_parse_args( $args, $defaults );384 extract( $r, EXTR_SKIP );385 386 if ( !isset( $members_template->member->latest_update ) || !$update = maybe_unserialize( $members_template->member->latest_update ) )387 return false;388 389 $update_content = apply_filters( 'bp_get_activity_latest_update', strip_tags( bp_create_excerpt( $update['content'], $length ) ) );390 391 if ( !empty( $update['id'] ) )392 $update_content .= ' · <a href="' . $bp->root_domain . '/' . $bp->activity->root_slug . '/p/' . $update['id'] . '">' . __( 'View', 'buddypress' ) . '</a>';393 394 return apply_filters( 'bp_get_member_latest_update', $update_content );395 }396 397 function bp_member_profile_data( $args = '' ) {398 echo bp_get_member_profile_data( $args );399 }400 function bp_get_member_profile_data( $args = '' ) {401 global $members_template;402 403 if ( !bp_is_active( 'xprofile' ) )404 return false;405 406 $defaults = array(407 'field' => false, // Field name408 );409 410 $r = wp_parse_args( $args, $defaults );411 extract( $r, EXTR_SKIP );412 413 // Populate the user if it hasn't been already.414 if ( empty( $members_template->member->profile_data ) && method_exists( 'BP_XProfile_ProfileData', 'get_all_for_user' ) )415 $members_template->member->profile_data = BP_XProfile_ProfileData::get_all_for_user( $members_template->member->id );416 417 $data = xprofile_format_profile_field( $members_template->member->profile_data[$field]['field_type'], $members_template->member->profile_data[$field]['field_data'] );418 419 return apply_filters( 'bp_get_member_profile_data', $data );420 }421 422 function bp_member_registered() {423 echo bp_get_member_registered();424 }425 function bp_get_member_registered() {426 global $members_template;427 428 $registered = esc_attr( bp_core_get_last_activity( $members_template->member->user_registered, __( 'registered %s ago', 'buddypress' ) ) );429 430 return apply_filters( 'bp_member_last_active', $registered );431 }432 433 function bp_member_random_profile_data() {434 global $members_template;435 436 if ( function_exists( 'xprofile_get_random_profile_data' ) ) { ?>437 <?php $random_data = xprofile_get_random_profile_data( $members_template->member->id, true ); ?>438 <strong><?php echo wp_filter_kses( $random_data[0]->name ) ?></strong>439 <?php echo wp_filter_kses( $random_data[0]->value ) ?>440 <?php }441 }442 443 function bp_member_hidden_fields() {444 if ( isset( $_REQUEST['s'] ) ) {445 echo '<input type="hidden" id="search_terms" value="' . esc_attr( $_REQUEST['s'] ) . '" name="search_terms" />';446 }447 448 if ( isset( $_REQUEST['letter'] ) ) {449 echo '<input type="hidden" id="selected_letter" value="' . esc_attr( $_REQUEST['letter'] ) . '" name="selected_letter" />';450 }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 457 function bp_directory_members_search_form() {458 global $bp;459 460 $default_search_value = bp_get_search_default_text();461 $search_value = !empty( $_REQUEST['s'] ) ? stripslashes( $_REQUEST['s'] ) : $default_search_value;462 463 ?>464 <form action="" method="get" id="search-members-form">465 <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>466 <input type="submit" id="members_search_submit" name="members_search_submit" value="<?php _e( 'Search', 'buddypress' ) ?>" />467 </form>468 <?php469 }470 471 function bp_total_site_member_count() {472 echo bp_get_total_site_member_count();473 }474 function bp_get_total_site_member_count() {475 return apply_filters( 'bp_get_total_site_member_count', bp_core_number_format( bp_core_get_total_member_count() ) );476 }477 478 479 /** Navigation and other misc template tags **/480 481 /**482 * bp_get_nav()483 * TEMPLATE TAG484 *485 * Uses the $bp->bp_nav global to render out the navigation within a BuddyPress install.486 * Each component adds to this navigation array within its own [component_name]_setup_nav() function.487 *488 * This navigation array is the top level navigation, so it contains items such as:489 * [Blog, Profile, Messages, Groups, Friends] ...490 *491 * The function will also analyze the current component the user is in, to determine whether492 * or not to highlight a particular nav item.493 *494 * @package BuddyPress Core495 * @todo Move to a back-compat file?496 * @deprecated Does not seem to be called anywhere in the core497 * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals()498 */499 function bp_get_loggedin_user_nav() {500 global $bp, $current_blog;501 502 /* Loop through each navigation item */503 foreach( (array) $bp->bp_nav as $nav_item ) {504 /* If the current component matches the nav item id, then add a highlight CSS class. */505 if ( !bp_is_directory() && $bp->active_components[$bp->current_component] == $nav_item['css_id'] )506 $selected = ' class="current selected"';507 else508 $selected = '';509 510 /* If we are viewing another person (current_userid does not equal loggedin_user->id)511 then check to see if the two users are friends. if they are, add a highlight CSS class512 to the friends nav item if it exists. */513 if ( !bp_is_my_profile() && $bp->displayed_user->id ) {514 $selected = '';515 516 if ( bp_is_active( 'friends' ) ) {517 if ( $nav_item['css_id'] == $bp->friends->id ) {518 if ( friends_check_friendship( $bp->loggedin_user->id, $bp->displayed_user->id ) )519 $selected = ' class="current selected"';520 }521 }522 }523 524 /* echo out the final list item */525 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 );526 }527 528 /* Always add a log out list item to the end of the navigation */529 if ( function_exists( 'wp_logout_url' ) ) {530 $logout_link = '<li><a id="wp-logout" href="' . wp_logout_url( $bp->root_domain ) . '">' . __( 'Log Out', 'buddypress' ) . '</a></li>';531 } else {532 $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>';533 }534 535 echo apply_filters( 'bp_logout_nav_link', $logout_link );536 }537 538 /**539 * Uses the $bp->bp_nav global to render out the user navigation when viewing another user other than540 * yourself.541 *542 * @package BuddyPress Core543 * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals()544 */545 function bp_get_displayed_user_nav() {546 global $bp;547 548 foreach ( (array)$bp->bp_nav as $user_nav_item ) {549 if ( !$user_nav_item['show_for_displayed_user'] && !bp_is_my_profile() )550 continue;551 552 if ( $bp->current_component == $user_nav_item['slug'] )553 $selected = ' class="current selected"';554 else555 $selected = '';556 557 if ( $bp->loggedin_user->domain )558 $link = str_replace( $bp->loggedin_user->domain, $bp->displayed_user->domain, $user_nav_item['link'] );559 else560 $link = $bp->displayed_user->domain . $user_nav_item['link'];561 562 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 );563 }564 }565 2 566 3 /** … … 591 28 return false; 592 29 593 / * Loop through each navigation item */30 // Loop through each navigation item 594 31 foreach ( (array)$bp->bp_options_nav[$component_index] as $subnav_item ) { 595 32 if ( !$subnav_item['user_has_access'] ) 596 33 continue; 597 34 598 / * If the current action or an action variable matches the nav item id, then add a highlight CSS class. */35 // If the current action or an action variable matches the nav item id, then add a highlight CSS class. 599 36 if ( $subnav_item['slug'] == $bp->current_action ) { 600 37 $selected = ' class="current selected"'; … … 603 40 } 604 41 605 / * echo out the final list item */42 // echo out the final list item 606 43 echo apply_filters( 'bp_get_options_nav_' . $subnav_item['css_id'], '<li id="' . $subnav_item['css_id'] . '-personal-li" ' . $selected . '><a id="' . $subnav_item['css_id'] . '" href="' . $subnav_item['link'] . '">' . $subnav_item['name'] . '</a></li>', $subnav_item ); 607 44 } … … 648 85 global $comment; 649 86 650 if ( function_exists( 'bp_core_fetch_avatar') ) {87 if ( function_exists( 'bp_core_fetch_avatar' ) ) 651 88 echo apply_filters( 'bp_comment_author_avatar', bp_core_fetch_avatar( array( 'item_id' => $comment->user_id, 'type' => 'thumb' ) ) ); 652 } else if ( function_exists('get_avatar') ) {89 else if ( function_exists('get_avatar') ) 653 90 get_avatar(); 654 }655 91 } 656 92 … … 658 94 global $post; 659 95 660 if ( function_exists( 'bp_core_fetch_avatar') ) {96 if ( function_exists( 'bp_core_fetch_avatar' ) ) 661 97 echo apply_filters( 'bp_post_author_avatar', bp_core_fetch_avatar( array( 'item_id' => $post->post_author, 'type' => 'thumb' ) ) ); 662 } else if ( function_exists('get_avatar') ) {98 else if ( function_exists('get_avatar') ) 663 99 get_avatar(); 664 } 665 } 666 667 function bp_loggedin_user_avatar( $args = '' ) { 668 echo bp_get_loggedin_user_avatar( $args ); 669 } 670 function bp_get_loggedin_user_avatar( $args = '' ) { 671 global $bp; 672 673 $defaults = array( 674 'type' => 'thumb', 675 'width' => false, 676 'height' => false, 677 'html' => true, 678 'alt' => __( 'Profile picture of %s', 'buddypress' ) 679 ); 680 681 $r = wp_parse_args( $args, $defaults ); 682 extract( $r, EXTR_SKIP ); 683 684 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 ) ) ); 685 } 686 687 function bp_displayed_user_avatar( $args = '' ) { 688 echo bp_get_displayed_user_avatar( $args ); 689 } 690 function bp_get_displayed_user_avatar( $args = '' ) { 691 global $bp; 692 693 $defaults = array( 694 'type' => 'thumb', 695 'width' => false, 696 'height' => false, 697 'html' => true, 698 'alt' => __( 'Profile picture of %s', 'buddypress' ) 699 ); 700 701 $r = wp_parse_args( $args, $defaults ); 702 extract( $r, EXTR_SKIP ); 703 704 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 ) ) ); 705 } 100 } 706 101 707 102 function bp_avatar_admin_step() { … … 832 227 833 228 function bp_exists( $component_name ) { 834 if ( function_exists( $component_name . '_install') )229 if ( function_exists( $component_name . '_install' ) ) 835 230 return true; 836 231 … … 945 340 wp_print_styles(); 946 341 } 947 948 function bp_has_custom_signup_page() {949 if ( locate_template( array( 'register.php' ), false ) || locate_template( array( '/registration/register.php' ), false ) )950 return true;951 952 return false;953 }954 955 function bp_signup_page() {956 echo bp_get_signup_page();957 }958 function bp_get_signup_page() {959 global $bp;960 961 if ( bp_has_custom_signup_page() )962 $page = $bp->root_domain . '/' . BP_REGISTER_SLUG;963 else964 $page = $bp->root_domain . '/wp-signup.php';965 966 return apply_filters( 'bp_get_signup_page', $page );967 }968 969 function bp_has_custom_activation_page() {970 if ( locate_template( array( 'activate.php' ), false ) || locate_template( array( '/registration/activate.php' ), false ) )971 return true;972 973 return false;974 }975 976 function bp_activation_page() {977 echo bp_get_activation_page();978 }979 function bp_get_activation_page() {980 global $bp;981 982 if ( bp_has_custom_activation_page() )983 $page = trailingslashit( $bp->root_domain ) . BP_ACTIVATION_SLUG;984 else985 $page = trailingslashit( $bp->root_domain ) . 'wp-activate.php';986 987 return apply_filters( 'bp_get_activation_page', $page );988 }989 342 990 343 /** … … 1194 547 add_filter( 'bp_get_total_member_count', 'bp_core_number_format' ); 1195 548 1196 /*** Signup form template tags **********************/1197 1198 function bp_signup_username_value() {1199 echo bp_get_signup_username_value();1200 }1201 function bp_get_signup_username_value() {1202 $value = '';1203 if ( isset( $_POST['signup_username'] ) )1204 $value = $_POST['signup_username'];1205 1206 return apply_filters( 'bp_get_signup_username_value', $value );1207 }1208 1209 function bp_signup_email_value() {1210 echo bp_get_signup_email_value();1211 }1212 function bp_get_signup_email_value() {1213 $value = '';1214 if ( isset( $_POST['signup_email'] ) )1215 $value = $_POST['signup_email'];1216 1217 return apply_filters( 'bp_get_signup_email_value', $value );1218 }1219 1220 function bp_signup_with_blog_value() {1221 echo bp_get_signup_with_blog_value();1222 }1223 function bp_get_signup_with_blog_value() {1224 $value = '';1225 if ( isset( $_POST['signup_with_blog'] ) )1226 $value = $_POST['signup_with_blog'];1227 1228 return apply_filters( 'bp_get_signup_with_blog_value', $value );1229 }1230 1231 function bp_signup_blog_url_value() {1232 echo bp_get_signup_blog_url_value();1233 }1234 function bp_get_signup_blog_url_value() {1235 $value = '';1236 if ( isset( $_POST['signup_blog_url'] ) )1237 $value = $_POST['signup_blog_url'];1238 1239 return apply_filters( 'bp_get_signup_blog_url_value', $value );1240 }1241 1242 function bp_signup_blog_title_value() {1243 echo bp_get_signup_blog_title_value();1244 }1245 function bp_get_signup_blog_title_value() {1246 $value = '';1247 if ( isset( $_POST['signup_blog_title'] ) )1248 $value = $_POST['signup_blog_title'];1249 1250 return apply_filters( 'bp_get_signup_blog_title_value', $value );1251 }1252 1253 function bp_signup_blog_privacy_value() {1254 echo bp_get_signup_blog_privacy_value();1255 }1256 function bp_get_signup_blog_privacy_value() {1257 $value = '';1258 if ( isset( $_POST['signup_blog_privacy'] ) )1259 $value = $_POST['signup_blog_privacy'];1260 1261 return apply_filters( 'bp_get_signup_blog_privacy_value', $value );1262 }1263 1264 function bp_signup_avatar_dir_value() {1265 echo bp_get_signup_avatar_dir_value();1266 }1267 function bp_get_signup_avatar_dir_value() {1268 global $bp;1269 1270 return apply_filters( 'bp_get_signup_avatar_dir_value', $bp->signup->avatar_dir );1271 }1272 1273 function bp_current_signup_step() {1274 echo bp_get_current_signup_step();1275 }1276 function bp_get_current_signup_step() {1277 global $bp;1278 1279 return $bp->signup->step;1280 }1281 1282 function bp_signup_avatar( $args = '' ) {1283 echo bp_get_signup_avatar( $args );1284 }1285 function bp_get_signup_avatar( $args = '' ) {1286 global $bp;1287 1288 $defaults = array(1289 'size' => BP_AVATAR_FULL_WIDTH,1290 'class' => 'avatar',1291 'alt' => __( 'Your Avatar', 'buddypress' )1292 );1293 1294 $r = wp_parse_args( $args, $defaults );1295 extract( $r, EXTR_SKIP );1296 1297 if ( !empty( $_POST['signup_avatar_dir'] ) ) {1298 $signup_avatar_dir = $_POST['signup_avatar_dir'];1299 } else if ( !empty( $bp->signup->avatar_dir ) ) {1300 $signup_avatar_dir = $bp->signup->avatar_dir;1301 }1302 1303 if ( empty( $signup_avatar_dir ) ) {1304 if ( empty( $bp->grav_default->user ) ) {1305 $default_grav = 'wavatar';1306 } else if ( 'mystery' == $bp->grav_default->user ) {1307 $default_grav = apply_filters( 'bp_core_mysteryman_src', BP_PLUGIN_URL . '/bp-core/images/mystery-man.jpg' );1308 } else {1309 $default_grav = $bp->grav_default->user;1310 }1311 1312 $gravatar_url = apply_filters( 'bp_gravatar_url', 'http://www.gravatar.com/avatar/' );1313 $gravatar_img = '<img src="' . $gravatar_url . md5( strtolower( $_POST['signup_email'] ) ) . '?d=' . $default_grav . '&s=' . $size . '" width="' . $size . '" height="' . $size . '" alt="' . $alt . '" class="' . $class . '" />';1314 } else {1315 $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 ) );1316 }1317 1318 return apply_filters( 'bp_get_signup_avatar', $gravatar_img );1319 }1320 1321 function bp_signup_allowed() {1322 echo bp_get_signup_allowed();1323 }1324 function bp_get_signup_allowed() {1325 global $bp;1326 1327 if ( is_multisite() ) {1328 if ( in_array( $bp->site_options['registration'], array( 'all', 'user' ) ) )1329 return true;1330 } else {1331 if ( (int)get_option( 'users_can_register') )1332 return true;1333 }1334 return false;1335 }1336 1337 549 function bp_blog_signup_allowed() { 1338 550 echo bp_get_blog_signup_allowed(); … … 1362 574 return apply_filters( 'bp_registration_needs_activation', true ); 1363 575 } 1364 1365 function bp_mentioned_user_display_name( $user_id_or_username ) {1366 echo bp_get_mentioned_user_display_name( $user_id_or_username );1367 }1368 function bp_get_mentioned_user_display_name( $user_id_or_username ) {1369 if ( !$name = bp_core_get_user_displayname( $user_id_or_username ) )1370 $name = __( 'a user' );1371 1372 return apply_filters( 'bp_get_mentioned_user_display_name', $name, $user_id_or_username );1373 }1374 576 1375 577 function bp_get_option( $option_name ) { … … 1403 605 } 1404 606 1405 1406 /*** CUSTOM LOOP TEMPLATE CLASSES *******************/ 1407 1408 1409 /* Template functions for fetching globals, without querying the DB again 1410 also means we dont have to use the $bp variable in the template (looks messy) */ 1411 1412 function bp_last_activity( $user_id = false, $echo = true ) { 1413 global $bp; 1414 1415 if ( !$user_id ) 1416 $user_id = $bp->displayed_user->id; 1417 1418 $last_activity = bp_core_get_last_activity( get_user_meta( $user_id, 'last_activity', true ), __('active %s ago', 'buddypress') ); 1419 1420 if ( $echo ) 1421 echo apply_filters( 'bp_last_activity', $last_activity ); 1422 else 1423 return apply_filters( 'bp_last_activity', $last_activity ); 1424 } 1425 1426 function bp_user_has_access() { 1427 global $bp; 1428 1429 if ( is_super_admin() || is_user_logged_in() && $bp->loggedin_user->id == $bp->displayed_user->id ) 1430 $has_access = true; 1431 else 1432 $has_access = false; 1433 1434 return apply_filters( 'bp_user_has_access', $has_access ); 1435 } 1436 1437 function bp_user_firstname() { 1438 echo bp_get_user_firstname(); 1439 } 1440 function bp_get_user_firstname( $name = false ) { 1441 global $bp; 1442 1443 // Try to get displayed user 1444 if ( empty( $name ) ) 1445 $name = $bp->displayed_user->fullname; 1446 1447 // Fall back on logged in user 1448 if ( empty( $name ) ) 1449 $name = $bp->loggedin_user->fullname; 1450 1451 $fullname = (array)explode( ' ', $name ); 1452 1453 return apply_filters( 'bp_get_user_firstname', $fullname[0], $fullname ); 1454 } 1455 1456 function bp_loggedin_user_link() { 1457 echo bp_get_loggedin_user_link(); 1458 } 1459 function bp_get_loggedin_user_link() { 1460 global $bp; 1461 1462 return apply_filters( 'bp_get_loggedin_user_link', $bp->loggedin_user->domain ); 1463 } 1464 1465 /* @todo Deprecate incorrectly named function? */ 1466 function bp_loggedinuser_link() { 1467 global $bp; 1468 1469 if ( $link = bp_core_get_userlink( $bp->loggedin_user->id ) ) 1470 echo apply_filters( 'bp_loggedin_user_link', $link ); 1471 } 1472 1473 function bp_displayed_user_link() { 1474 echo bp_get_displayed_user_link(); 1475 } 1476 function bp_get_displayed_user_link() { 1477 global $bp; 1478 1479 return apply_filters( 'bp_get_displayed_user_link', $bp->displayed_user->domain ); 1480 } 1481 function bp_user_link() { bp_displayed_user_link(); } // Deprecated. 1482 1483 function bp_displayed_user_id() { 1484 global $bp; 1485 return apply_filters( 'bp_displayed_user_id', $bp->displayed_user->id ); 1486 } 1487 function bp_current_user_id() { return bp_displayed_user_id(); } 1488 1489 function bp_loggedin_user_id() { 1490 global $bp; 1491 return apply_filters( 'bp_loggedin_user_id', $bp->loggedin_user->id ); 1492 } 1493 1494 function bp_displayed_user_domain() { 1495 global $bp; 1496 return apply_filters( 'bp_displayed_user_domain', $bp->displayed_user->domain ); 1497 } 1498 1499 function bp_loggedin_user_domain() { 1500 global $bp; 1501 return apply_filters( 'bp_loggedin_user_domain', $bp->loggedin_user->domain ); 1502 } 1503 1504 function bp_displayed_user_fullname() { 1505 echo bp_get_displayed_user_fullname(); 1506 } 1507 function bp_get_displayed_user_fullname() { 1508 global $bp; 1509 1510 return apply_filters( 'bp_displayed_user_fullname', $bp->displayed_user->fullname ); 1511 } 1512 function bp_user_fullname() { echo bp_get_displayed_user_fullname(); } 1513 1514 1515 function bp_loggedin_user_fullname() { 1516 echo bp_get_loggedin_user_fullname(); 1517 } 1518 function bp_get_loggedin_user_fullname() { 1519 global $bp; 1520 return apply_filters( 'bp_get_loggedin_user_fullname', $bp->loggedin_user->fullname ); 1521 } 1522 1523 function bp_displayed_user_username() { 1524 echo bp_get_displayed_user_username(); 1525 } 1526 function bp_get_displayed_user_username() { 1527 global $bp; 1528 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 ) ); 1529 } 1530 1531 function bp_loggedin_user_username() { 1532 echo bp_get_loggedin_user_username(); 1533 } 1534 function bp_get_loggedin_user_username() { 1535 global $bp; 1536 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 ) ); 1537 } 607 /** Template Classes and _is functions ****************************************/ 1538 608 1539 609 function bp_current_component() {
Note: See TracChangeset
for help on using the changeset viewer.