Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
01/21/2011 12:03:25 AM (15 years ago)
Author:
johnjamesjacoby
Message:

Move more user functions out of core component and into user component. Fixes to loaders. More code clean-up.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-core/bp-core-template.php

    r3767 r3778  
    11<?php
    2 /***
    3  * Members template loop that will allow you to loop all members or friends of a member
    4  * 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         else
    35             $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         else
    40             $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' => '&larr;',
    61                 'next_text' => '&rarr;',
    62                 'mid_size'   => 1
    63             ) );
    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 loop
    94             $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 started
    108             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 overridden
    123      * if arguments are directly passed into the loop. Custom plugins should always
    124      * 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 filtering
    132     if ( !empty( $bp->displayed_user->id ) )
    133         $user_id = $bp->displayed_user->id;
    134 
    135     // type: active ( default ) | random | newest | popular | online | alphabetical
    136     $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 users
    143         'exclude' => false, // Pass a user_id or a list (comma-separated or array) of user_ids to exclude these users
    144 
    145         'user_id' => $user_id, // Pass a user_id to only show friends of this user
    146         'search_terms' => $search_terms, // Pass search_terms to filter users by their profile data
    147 
    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         else
    159             $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         else
    203             $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 loop
    231      *
    232      * @global object $members_template
    233      * @return string Members id
    234      */
    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 loop
    255      *
    256      * @global object $members_template
    257      * @return string Members nicename
    258      */
    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 loop
    278      *
    279      * @global object $members_template
    280      * @return string Members login
    281      */
    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 loop
    301      *
    302      * @global object $members_template
    303      * @return string Members email address
    304      */
    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' => 70
    381         );
    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 .= ' &middot; <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 name
    408         );
    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 <?php
    469 }
    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 TAG
    484  *
    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 whether
    492  * or not to highlight a particular nav item.
    493  *
    494  * @package BuddyPress Core
    495  * @todo Move to a back-compat file?
    496  * @deprecated Does not seem to be called anywhere in the core
    497  * @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         else
    508             $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 class
    512            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&amp;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 than
    540  * yourself.
    541  *
    542  * @package BuddyPress Core
    543  * @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         else
    555             $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         else
    560             $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 }
    5652
    5663/**
     
    59128        return false;
    59229
    593     /* Loop through each navigation item */
     30    // Loop through each navigation item
    59431    foreach ( (array)$bp->bp_options_nav[$component_index] as $subnav_item ) {
    59532        if ( !$subnav_item['user_has_access'] )
    59633            continue;
    59734
    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.
    59936        if ( $subnav_item['slug'] == $bp->current_action ) {
    60037            $selected = ' class="current selected"';
     
    60340        }
    60441
    605         /* echo out the final list item */
     42        // echo out the final list item
    60643        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 );
    60744    }
     
    64885    global $comment;
    64986
    650     if ( function_exists('bp_core_fetch_avatar') ) {
     87    if ( function_exists( 'bp_core_fetch_avatar' ) )
    65188        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') )
    65390        get_avatar();
    654     }
    65591}
    65692
     
    65894    global $post;
    65995
    660     if ( function_exists('bp_core_fetch_avatar') ) {
     96    if ( function_exists( 'bp_core_fetch_avatar' ) )
    66197        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') )
    66399        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}
    706101
    707102function bp_avatar_admin_step() {
     
    832227
    833228function bp_exists( $component_name ) {
    834     if ( function_exists($component_name . '_install') )
     229    if ( function_exists( $component_name . '_install' ) )
    835230        return true;
    836231
     
    945340    wp_print_styles();
    946341}
    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         else
    964             $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         else
    985             $page = trailingslashit( $bp->root_domain ) . 'wp-activate.php';
    986 
    987         return apply_filters( 'bp_get_activation_page', $page );
    988     }
    989342
    990343/**
     
    1194547    add_filter( 'bp_get_total_member_count', 'bp_core_number_format' );
    1195548
    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 . '&amp;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 
    1337549function bp_blog_signup_allowed() {
    1338550    echo bp_get_blog_signup_allowed();
     
    1362574    return apply_filters( 'bp_registration_needs_activation', true );
    1363575}
    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     }
    1374576
    1375577function bp_get_option( $option_name ) {
     
    1403605}
    1404606
    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 ****************************************/
    1538608
    1539609function bp_current_component() {
Note: See TracChangeset for help on using the changeset viewer.