Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
12/14/2009 03:24:05 PM (16 years ago)
Author:
apeatling
Message:

Committing core code support for new default theme.

Removed all deprecated code since it will be released as a separate plugin for backwards compatibility if people need it.

Removed the wire and status updates components since there is no support in the theme for these. If people still want this functionality then I'm sure there is someone in the community that could spend a bit of time and release them as plugins. I'm happy to guide.

Removed a lot of template loop duplication. There are no longer site loops and user loops (e.g. bp_has_site_groups() / bp_has_groups() ). There are now bp_has_members(), bp_has_groups(), bp_has_blogs() and you can pass a "user_id" parameter into these loops to limit results to only that user or users.

Merged activity stream functions. There are no longer functions for bp_activity_get_sitewide() / bp_activity_get_for_user() / bp_activity_get_friends_activity() instead there is simply one function: bp_activity_get() and you can pass in parameters to filter on just friends, for a single user, or anything your heart desires. Actually, filtering is extremely fine grained, so I encourage devs to check out the filter functions.

Lots of other code cleanup.

The new default theme will be committed straight after this. The original default folder will be renamed to bp-classic.

File:
1 edited

Legend:

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

    r2145 r2168  
    11<?php
     2
     3/***
     4 * Members template loop that will allow you to loop all members or friends of a member
     5 * if you pass a user_id.
     6 */
     7
     8class BP_Core_Members_Template {
     9    var $current_member = -1;
     10    var $member_count;
     11    var $members;
     12    var $member;
     13
     14    var $in_the_loop;
     15
     16    var $pag_page;
     17    var $pag_num;
     18    var $pag_links;
     19    var $total_member_count;
     20
     21    function bp_core_members_template( $type, $page_number, $per_page, $max, $user_id, $search_terms, $include ) {
     22        global $bp, $bp_the_member_query;
     23
     24        $this->pag_page = isset( $_REQUEST['upage'] ) ? intval( $_REQUEST['upage'] ) : $page_number;
     25        $this->pag_num = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : $per_page;
     26        $this->type = $type;
     27
     28        if ( isset( $_REQUEST['letter'] ) && '' != $_REQUEST['letter'] ) {
     29            $this->members = BP_Core_User::get_users_by_letter( $_REQUEST['letter'], $this->pag_num, $this->pag_page );
     30        }
     31        else if ( false !== $include ) {
     32            $this->members = BP_Core_User::get_specific_users( $include, $this->pag_num, $this->pag_page );
     33        }
     34        else {
     35            $this->members = BP_Core_User::get_users( $this->type, $this->pag_num, $this->pag_page, $user_id, $search_terms );
     36        }
     37
     38        if ( !$max || $max >= (int)$this->members['total'] )
     39            $this->total_member_count = (int)$this->members['total'];
     40        else
     41            $this->total_member_count = (int)$max;
     42
     43        $this->members = $this->members['users'];
     44
     45        if ( $max ) {
     46            if ( $max >= count($this->members) )
     47                $this->member_count = count($this->members);
     48            else
     49                $this->member_count = (int)$max;
     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('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('loop_start');
     109    }
     110}
     111
     112function bp_rewind_members() {
     113    global $members_template;
     114
     115    return $members_template->rewind_members();
     116}
     117
     118function bp_has_members( $args = '' ) {
     119    global $bp, $members_template;
     120
     121    // type: active ( default ) | random | newest | popular | online | alphabetical
     122    $defaults = array(
     123        'type' => 'active',
     124        'page' => 1,
     125        'per_page' => 10,
     126        'max' => false,
     127
     128        'include' => false, // Pass a user_id or comma separated list of user_ids to only show these users
     129
     130        'user_id' => false, // Pass a user_id to only show friends of this user
     131        'search_terms' => false // Pass search_terms to filter users by their profile data
     132    );
     133
     134    $r = wp_parse_args( $args, $defaults );
     135    extract( $r, EXTR_SKIP );
     136
     137    if ( $max ) {
     138        if ( $per_page > $max )
     139            $per_page = $max;
     140    }
     141
     142    /* Pass a filter if ?s= is set. */
     143    if ( $_REQUEST['s'] )
     144        $search_terms = $_REQUEST['s'];
     145
     146    $members_template = new BP_Core_Members_Template( $type, $page, $per_page, $max, $user_id, $search_terms, $include );
     147
     148    return $members_template->has_members();
     149}
     150
     151function bp_the_member() {
     152    global $members_template;
     153    return $members_template->the_member();
     154}
     155
     156function bp_members() {
     157    global $members_template;
     158    return $members_template->members();
     159}
     160
     161function bp_members_pagination_count() {
     162    global $bp, $members_template;
     163
     164    $from_num = intval( ( $members_template->pag_page - 1 ) * $members_template->pag_num ) + 1;
     165    $to_num = ( $from_num + ( $members_template->pag_num - 1 ) > $members_template->total_member_count ) ? $members_template->total_member_count : $from_num + ( $members_template->pag_num - 1) ;
     166
     167    if ( 'active' == $members_template->type )
     168        echo sprintf( __( 'Viewing member %d to %d (of %d active members)', 'buddypress' ), $from_num, $to_num, $members_template->total_member_count );
     169    else if ( 'popular' == $members_template->type )
     170        echo sprintf( __( 'Viewing member %d to %d (of %d members with friends)', 'buddypress' ), $from_num, $to_num, $members_template->total_member_count );
     171    else if ( 'online' == $members_template->type )
     172        echo sprintf( __( 'Viewing member %d to %d (of %d members online)', 'buddypress' ), $from_num, $to_num, $members_template->total_member_count );
     173    else
     174        echo sprintf( __( 'Viewing member %d to %d (of %d members)', 'buddypress' ), $from_num, $to_num, $members_template->total_member_count );
     175
     176    ?><span class="ajax-loader"></span><?php
     177}
     178
     179function bp_members_pagination_links() {
     180    echo bp_get_members_pagination_links();
     181}
     182    function bp_get_members_pagination_links() {
     183        global $members_template;
     184
     185        return apply_filters( 'bp_get_members_pagination_links', $members_template->pag_links );
     186    }
     187
     188function bp_member_user_id() {
     189    echo bp_get_member_user_id();
     190}
     191    function bp_get_member_user_id() {
     192        global $members_template;
     193
     194        return apply_filters( 'bp_get_member_user_id', $members_template->member->id );
     195    }
     196
     197function bp_member_avatar( $args = '' ) {
     198    echo apply_filters( 'bp_member_avatar', bp_get_member_avatar( $args ) );
     199}
     200    function bp_get_member_avatar( $args = '' ) {
     201        global $bp, $members_template;
     202
     203        $defaults = array(
     204            'type' => 'thumb',
     205            'width' => false,
     206            'height' => false,
     207            'class' => 'avatar',
     208            'id' => false,
     209            'alt' => __( 'Member avatar', 'buddypress' )
     210        );
     211
     212        $r = wp_parse_args( $args, $defaults );
     213        extract( $r, EXTR_SKIP );
     214
     215        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 ) ) );
     216    }
     217
     218function bp_member_permalink() {
     219    echo bp_get_member_permalink();
     220}
     221    function bp_get_member_permalink() {
     222        global $members_template;
     223
     224        echo 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 ) );
     225    }
     226    function bp_member_link() { echo bp_get_member_permalink(); }
     227    function bp_get_member_link() { return bp_get_member_permalink(); }
     228
     229function bp_member_name() {
     230    echo apply_filters( 'bp_member_name', bp_get_member_name() );
     231}
     232    function bp_get_member_name() {
     233        global $members_template;
     234
     235        return apply_filters( 'bp_get_member_name', $members_template->member->fullname );
     236    }
     237    add_filter( 'bp_get_member_name', 'wp_filter_kses' );
     238    add_filter( 'bp_get_member_name', 'stripslashes' );
     239
     240function bp_member_last_active() {
     241    echo bp_get_member_last_active();
     242}
     243    function bp_get_member_last_active() {
     244        global $members_template;
     245
     246        $last_activity = attribute_escape( bp_core_get_last_activity( $members_template->member->last_activity, __( 'active %s ago', 'buddypress' ) ) );
     247
     248        return apply_filters( 'bp_member_last_active', $last_activity );
     249    }
     250
     251function bp_member_profile_data( $field_name = false ) {
     252    echo bp_get_member_profile_data( $field_name );
     253}
     254    function bp_get_member_profile_data( $field_name = false ) {
     255        global $members_template;
     256
     257        if ( !$field_name || !function_exists( 'xprofile_install' ) )
     258            return false;
     259
     260        // Populate the user if it hasn't been already.
     261        if ( empty( $members_template->member->profile_data ) )
     262            $members_template->member = new BP_Core_User( $members_template->member->id );
     263
     264        return apply_filters( 'bp_get_member_profile_data', $members_template->member->profile_data[$field_name]['field_data'], $members_template->member->profile_data[$field_name]['field_type'] );
     265    }
     266
     267function bp_member_registered() {
     268    echo bp_get_member_registered();
     269}
     270    function bp_get_member_registered() {
     271        global $members_template;
     272
     273        $registered = attribute_escape( bp_core_get_last_activity( $members_template->member->user_registered, __( 'registered %s ago', 'buddypress' ) ) );
     274
     275        return apply_filters( 'bp_member_last_active', $registered );
     276    }
     277
     278function bp_member_add_friend_button() {
     279    global $members_template;
     280
     281    if ( function_exists( 'bp_add_friend_button' ) ) {
     282        echo bp_add_friend_button( $members_template->member->id );
     283    }
     284}
     285
     286function bp_member_total_friend_count() {
     287    global $members_template;
     288
     289    echo bp_get_member_total_friend_count();
     290}
     291    function bp_get_member_total_friend_count() {
     292        global $members_template;
     293
     294        if ( 1 == (int) $members_template->member->total_friend_count )
     295            return apply_filters( 'bp_get_member_total_friend_count', sprintf( __( '%d friend', 'buddypress' ), (int) $members_template->member->total_friend_count ) );
     296        else
     297            return apply_filters( 'bp_get_member_total_friend_count', sprintf( __( '%d friends', 'buddypress' ), (int) $members_template->member->total_friend_count ) );
     298    }
     299
     300function bp_member_random_profile_data() {
     301    global $members_template;
     302
     303    if ( function_exists( 'xprofile_get_random_profile_data' ) ) { ?>
     304        <?php $random_data = xprofile_get_random_profile_data( $members_template->member->id, true ); ?>
     305            <strong><?php echo wp_filter_kses( $random_data[0]->name ) ?></strong>
     306            <?php echo wp_filter_kses( $random_data[0]->value ) ?>
     307    <?php }
     308}
     309
     310function bp_member_hidden_fields() {
     311    if ( isset( $_REQUEST['s'] ) ) {
     312        echo '<input type="hidden" id="search_terms" value="' . attribute_escape( $_REQUEST['s'] ) . '" name="search_terms" />';
     313    }
     314
     315    if ( isset( $_REQUEST['letter'] ) ) {
     316        echo '<input type="hidden" id="selected_letter" value="' . attribute_escape( $_REQUEST['letter'] ) . '" name="selected_letter" />';
     317    }
     318
     319    if ( isset( $_REQUEST['members_search'] ) ) {
     320        echo '<input type="hidden" id="search_terms" value="' . attribute_escape( $_REQUEST['members_search'] ) . '" name="search_terms" />';
     321    }
     322}
     323
     324function bp_directory_members_search_form() {
     325    global $bp;
     326
     327    $search_value = __( 'Search anything...', 'buddypress' );
     328    if ( !empty( $_GET['s'] ) )
     329        $search_value = $_GET['s'];
     330
     331    else if ( !empty( $_COOKIE['bp-members-search-terms'] ) && 'false' != $_COOKIE['bp-members-search-terms'] )
     332        $search_value = $_COOKIE['bp-members-search-terms'];
     333
     334    ?>
     335    <form action="" method="get" id="search-members-form">
     336        <label><input type="text" name="s" id="members_search" value="<?php echo attribute_escape( $search_value ) ?>"  onfocus="if (this.value == '<?php _e( 'Search anything...', 'buddypress' ) ?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php _e( 'Search anything...', 'buddypress' ) ?>';}" /></label>
     337        <input type="submit" id="members_search_submit" name="members_search_submit" value="<?php _e( 'Search', 'buddypress' ) ?>" />
     338        <?php wp_nonce_field( 'directory_members', '_wpnonce-member-filter' ) ?>
     339    </form>
     340<?php
     341}
     342
     343function bp_home_blog_url() {
     344    global $bp, $current_blog;
     345
     346    if ( defined( 'BP_ENABLE_MULTIBLOG' ) ) {
     347        $blog_id = $current_blog->blog_id;
     348    } else {
     349        $blog_id = BP_ROOT_BLOG;
     350    }
     351
     352    if ( 'bphome' == get_blog_option( $blog_id, 'template' ) )
     353        echo $bp->root_domain . '/' . BP_HOME_BLOG_SLUG;
     354    else
     355        echo $bp->root_domain;
     356}
     357
     358function bp_total_site_member_count() {
     359    echo bp_get_total_site_member_count();
     360}
     361    function bp_get_total_site_member_count() {
     362        return apply_filters( 'bp_get_total_site_member_count', bp_core_get_total_member_count() );
     363    }
     364
     365
     366/** Navigation and other misc template tags **/
     367
    2368/**
    3369 * bp_get_nav()
     
    31397           then check to see if the two users are friends. if they are, add a highlight CSS class
    32398           to the friends nav item if it exists. */
    33         if ( !bp_is_home() && $bp->displayed_user->id ) {
     399        if ( !bp_is_my_profile() && $bp->displayed_user->id ) {
    34400            $selected = '';
    35401
     
    72438
    73439    foreach ( $bp->bp_nav as $user_nav_item ) {
    74         if ( !$user_nav_item['show_for_displayed_user'] )
     440        if ( !$user_nav_item['show_for_displayed_user'] && !bp_is_my_profile() )
    75441            continue;
    76442
     
    270636}
    271637
    272 function bp_is_home() {
     638function bp_is_my_profile() {
    273639    global $bp;
    274640
     
    278644    return false;
    279645}
     646function bp_is_home() { return bp_is_my_profile(); }
    280647
    281648function bp_last_activity( $user_id = false, $echo = true ) {
     
    8551222/*** CUSTOM LOOP TEMPLATE CLASSES *******************/
    8561223
    857 class BP_Core_Members_Template {
    858     var $current_member = -1;
    859     var $member_count;
    860     var $members;
    861     var $member;
    862 
    863     var $in_the_loop;
    864 
    865     var $pag_page;
    866     var $pag_num;
    867     var $pag_links;
    868     var $total_member_count;
    869 
    870     function bp_core_members_template( $type, $per_page, $max ) {
    871         global $bp, $bp_the_member_query;
    872 
    873         $this->pag_page = isset( $_REQUEST['upage'] ) ? intval( $_REQUEST['upage'] ) : 1;
    874         $this->pag_num = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : $per_page;
    875 
    876         if ( isset( $_REQUEST['s'] ) && '' != $_REQUEST['s'] && $type != 'random' ) {
    877             $this->members = BP_Core_User::search_users( $_REQUEST['s'], $this->pag_num, $this->pag_page );
    878         } else if ( isset( $_REQUEST['letter'] ) && '' != $_REQUEST['letter'] ) {
    879             $this->members = BP_Core_User::get_users_by_letter( $_REQUEST['letter'], $this->pag_num, $this->pag_page );
    880         } else {
    881             switch ( $type ) {
    882                 case 'random':
    883                     $this->members = BP_Core_User::get_random_users( $this->pag_num, $this->pag_page );
    884                     break;
    885 
    886                 case 'newest':
    887                     $this->members = BP_Core_User::get_newest_users( $this->pag_num, $this->pag_page );
    888                     break;
    889 
    890                 case 'popular':
    891                     $this->members = BP_Core_User::get_popular_users( $this->pag_num, $this->pag_page );
    892                     break;
    893 
    894                 case 'online':
    895                     $this->members = BP_Core_User::get_online_users( $this->pag_num, $this->pag_page );
    896                     break;
    897 
    898                 case 'alphabetical':
    899                     $this->members = BP_Core_User::get_alphabetical_users( $this->pag_num, $this->pag_page );
    900                     break;
    901 
    902                 case 'active': default:
    903                     $this->members = BP_Core_User::get_active_users( $this->pag_num, $this->pag_page );
    904                     break;
    905             }
    906         }
    907 
    908         if ( !$max || $max >= (int)$this->members['total'] )
    909             $this->total_member_count = (int)$this->members['total'];
    910         else
    911             $this->total_member_count = (int)$max;
    912 
    913         $this->members = $this->members['users'];
    914 
    915         if ( $max ) {
    916             if ( $max >= count($this->members) )
    917                 $this->member_count = count($this->members);
    918             else
    919                 $this->member_count = (int)$max;
    920         } else {
    921             $this->member_count = count($this->members);
    922         }
    923 
    924         if ( (int) $this->total_member_count && (int) $this->pag_num ) {
    925             $this->pag_links = paginate_links( array(
    926                 'base' => add_query_arg( 'upage', '%#%' ),
    927                 'format' => '',
    928                 'total' => ceil( (int) $this->total_member_count / (int) $this->pag_num ),
    929                 'current' => (int) $this->pag_page,
    930                 'prev_text' => '&laquo;',
    931                 'next_text' => '&raquo;',
    932                 'mid_size' => 1
    933             ));
    934         }
    935     }
    936 
    937     function has_members() {
    938         if ( $this->member_count )
    939             return true;
    940 
    941         return false;
    942     }
    943 
    944     function next_member() {
    945         $this->current_member++;
    946         $this->member = $this->members[$this->current_member];
    947 
    948         return $this->member;
    949     }
    950 
    951     function rewind_members() {
    952         $this->current_member = -1;
    953         if ( $this->member_count > 0 ) {
    954             $this->member = $this->members[0];
    955         }
    956     }
    957 
    958     function site_members() {
    959         if ( $this->current_member + 1 < $this->member_count ) {
    960             return true;
    961         } elseif ( $this->current_member + 1 == $this->member_count ) {
    962             do_action('loop_end');
    963             // Do some cleaning up after the loop
    964             $this->rewind_members();
    965         }
    966 
    967         $this->in_the_loop = false;
    968         return false;
    969     }
    970 
    971     function the_member() {
    972         global $member, $bp;
    973 
    974         $this->in_the_loop = true;
    975         $this->member = $this->next_member();
    976         $user_id = $this->member->user_id;
    977         $user_registered = $this->member->user_registered;
    978 
    979         if ( !$this->member = wp_cache_get( 'bp_user_' . $user_id, 'bp' ) ) {
    980             $this->member = new BP_Core_User( $user_id );
    981             wp_cache_set( 'bp_user_' . $user_id, $this->member, 'bp' );
    982         }
    983 
    984         if ( $user_registered )
    985             $this->member->user_registered = $user_registered;
    986 
    987         if ( 0 == $this->current_member ) // loop has just started
    988             do_action('loop_start');
    989     }
    990 }
    991 
    992 function bp_rewind_site_members() {
    993     global $site_members_template;
    994 
    995     return $site_members_template->rewind_members();
    996 }
    997 
    998 function bp_has_site_members( $args = '' ) {
    999     global $bp, $site_members_template;
    1000 
    1001     $defaults = array(
    1002         'type' => 'active',
    1003         'per_page' => 10,
    1004         'max' => false
    1005     );
    1006 
    1007     $r = wp_parse_args( $args, $defaults );
    1008     extract( $r, EXTR_SKIP );
    1009 
    1010     // type: active ( default ) | random | newest | popular | online | alphabetical
    1011 
    1012     if ( $max ) {
    1013         if ( $per_page > $max )
    1014             $per_page = $max;
    1015     }
    1016 
    1017     $site_members_template = new BP_Core_Members_Template( $type, $per_page, $max );
    1018 
    1019     return $site_members_template->has_members();
    1020 }
    1021 
    1022 function bp_the_site_member() {
    1023     global $site_members_template;
    1024     return $site_members_template->the_member();
    1025 }
    1026 
    1027 function bp_site_members() {
    1028     global $site_members_template;
    1029     return $site_members_template->site_members();
    1030 }
    1031 
    1032 function bp_site_members_pagination_count() {
    1033     global $bp, $site_members_template;
    1034 
    1035     $from_num = intval( ( $site_members_template->pag_page - 1 ) * $site_members_template->pag_num ) + 1;
    1036     $to_num = ( $from_num + ( $site_members_template->pag_num - 1 ) > $site_members_template->total_member_count ) ? $site_members_template->total_member_count : $from_num + ( $site_members_template->pag_num - 1) ;
    1037 
    1038     echo sprintf( __( 'Viewing member %d to %d (of %d members)', 'buddypress' ), $from_num, $to_num, $site_members_template->total_member_count ); ?> &nbsp;
    1039     <span class="ajax-loader"></span><?php
    1040 }
    1041 
    1042 function bp_site_members_pagination_links() {
    1043     echo bp_get_site_members_pagination_links();
    1044 }
    1045     function bp_get_site_members_pagination_links() {
    1046         global $site_members_template;
    1047 
    1048         return apply_filters( 'bp_get_site_members_pagination_links', $site_members_template->pag_links );
    1049     }
    1050 
    1051 function bp_the_site_member_user_id() {
    1052     echo bp_get_the_site_member_user_id();
    1053 }
    1054     function bp_get_the_site_member_user_id() {
    1055         global $site_members_template;
    1056 
    1057         return apply_filters( 'bp_get_the_site_member_user_id', $site_members_template->member->id );
    1058     }
    1059 
    1060 function bp_the_site_member_avatar( $args = '' ) {
    1061     echo apply_filters( 'bp_the_site_member_avatar', bp_get_the_site_member_avatar( $args ) );
    1062 }
    1063 
    1064     function bp_get_the_site_member_avatar( $args = '' ) {
    1065         global $bp, $site_members_template;
    1066 
    1067         $defaults = array(
    1068             'type' => 'thumb',
    1069             'width' => false,
    1070             'height' => false,
    1071             'class' => 'avatar',
    1072             'id' => false,
    1073             'alt' => __( 'Member avatar', 'buddypress' )
    1074         );
    1075 
    1076         $r = wp_parse_args( $args, $defaults );
    1077         extract( $r, EXTR_SKIP );
    1078 
    1079         /* Fetch the avatar from the folder, if not provide backwards compat. */
    1080         if ( !$avatar = bp_core_fetch_avatar( array( 'item_id' => $site_members_template->member->id, 'type' => $type, 'alt' => $alt, 'css_id' => $id, 'class' => $class, 'width' => $width, 'height' => $height ) ) )
    1081             $avatar = '<img src="' . attribute_escape( $site_members_template->member->avatar_thumb ) . '" class="avatar" alt="' . __( 'Member avatar', 'buddypress' ) . '" />';
    1082 
    1083         return apply_filters( 'bp_get_the_site_member_avatar', $avatar );
    1084     }
    1085 
    1086 function bp_the_site_member_link() {
    1087     echo bp_get_the_site_member_link();
    1088 }
    1089     function bp_get_the_site_member_link() {
    1090         global $site_members_template;
    1091 
    1092         echo apply_filters( 'bp_get_the_site_member_link', $site_members_template->member->user_url );
    1093     }
    1094 
    1095 function bp_the_site_member_name() {
    1096     echo apply_filters( 'bp_the_site_member_name', bp_get_the_site_member_name() );
    1097 }
    1098     function bp_get_the_site_member_name() {
    1099         global $site_members_template;
    1100 
    1101         return apply_filters( 'bp_get_the_site_member_name', $site_members_template->member->fullname );
    1102     }
    1103     add_filter( 'bp_get_the_site_member_name', 'wp_filter_kses' );
    1104     add_filter( 'bp_get_the_site_member_name', 'stripslashes' );
    1105 
    1106 function bp_the_site_member_last_active() {
    1107     echo bp_get_the_site_member_last_active();
    1108 }
    1109     function bp_get_the_site_member_last_active() {
    1110         global $site_members_template;
    1111 
    1112         $last_activity = attribute_escape( bp_core_get_last_activity( get_usermeta( $site_members_template->member->id, 'last_activity' ), __( 'active %s ago', 'buddypress' ) ) );
    1113 
    1114         return apply_filters( 'bp_the_site_member_last_active', $last_activity );
    1115     }
    1116 
    1117 function bp_the_site_member_profile_data( $field_name = false ) {
    1118     echo bp_get_the_site_member_profile_data( $field_name );
    1119 }
    1120     function bp_get_the_site_member_profile_data( $field_name = false ) {
    1121         global $site_members_template;
    1122 
    1123         if ( !$field_name || !function_exists( 'xprofile_install' ) )
    1124             return false;
    1125 
    1126         return apply_filters( 'bp_get_the_site_member_profile_data', $site_members_template->member->profile_data[$field_name]['field_data'], $site_members_template->member->profile_data[$field_name]['field_type'] );
    1127     }
    1128 
    1129 function bp_the_site_member_registered() {
    1130     echo bp_get_the_site_member_registered();
    1131 }
    1132     function bp_get_the_site_member_registered() {
    1133         global $site_members_template;
    1134 
    1135         return apply_filters( 'bp_the_site_member_last_active', strtotime( $site_members_template->member->user_registered ) );
    1136     }
    1137 
    1138 function bp_the_site_member_add_friend_button() {
    1139     global $site_members_template;
    1140 
    1141     if ( function_exists( 'bp_add_friend_button' ) ) {
    1142         echo bp_add_friend_button( $site_members_template->member->id );
    1143     }
    1144 }
    1145 
    1146 function bp_the_site_member_total_friend_count() {
    1147     global $site_members_template;
    1148 
    1149     if ( !(int) $site_members_template->member->total_friends )
    1150         return false;
    1151 
    1152     echo bp_get_the_site_member_total_friend_count();
    1153 }
    1154     function bp_get_the_site_member_total_friend_count() {
    1155         global $site_members_template;
    1156 
    1157         if ( !(int) $site_members_template->member->total_friends )
    1158             return false;
    1159 
    1160         if ( 1 == (int) $site_members_template->member->total_friends )
    1161             return apply_filters( 'bp_get_the_site_member_total_friend_count', sprintf( __( '%d friend', 'buddypress' ), (int) $site_members_template->member->total_friends ) );
    1162         else
    1163             return apply_filters( 'bp_get_the_site_member_total_friend_count', sprintf( __( '%d friends', 'buddypress' ), (int) $site_members_template->member->total_friends ) );
    1164     }
    1165 
    1166 function bp_the_site_member_random_profile_data() {
    1167     global $site_members_template;
    1168 
    1169     if ( function_exists( 'xprofile_get_random_profile_data' ) ) { ?>
    1170         <?php $random_data = xprofile_get_random_profile_data( $site_members_template->member->id, true ); ?>
    1171             <strong><?php echo wp_filter_kses( $random_data[0]->name ) ?></strong>
    1172             <?php echo wp_filter_kses( $random_data[0]->value ) ?>
    1173     <?php }
    1174 }
    1175 
    1176 function bp_the_site_member_hidden_fields() {
    1177     if ( isset( $_REQUEST['s'] ) ) {
    1178         echo '<input type="hidden" id="search_terms" value="' . attribute_escape( $_REQUEST['s'] ) . '" name="search_terms" />';
    1179     }
    1180 
    1181     if ( isset( $_REQUEST['letter'] ) ) {
    1182         echo '<input type="hidden" id="selected_letter" value="' . attribute_escape( $_REQUEST['letter'] ) . '" name="selected_letter" />';
    1183     }
    1184 
    1185     if ( isset( $_REQUEST['members_search'] ) ) {
    1186         echo '<input type="hidden" id="search_terms" value="' . attribute_escape( $_REQUEST['members_search'] ) . '" name="search_terms" />';
    1187     }
    1188 }
    1189 
    1190 function bp_directory_members_search_form() {
    1191     global $bp; ?>
    1192     <form action="" method="get" id="search-members-form">
    1193         <label><input type="text" name="s" id="members_search" value="<?php if ( isset( $_GET['s'] ) ) { echo attribute_escape( $_GET['s'] ); } else { _e( 'Search anything...', 'buddypress' ); } ?>"  onfocus="if (this.value == '<?php _e( 'Search anything...', 'buddypress' ) ?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php _e( 'Search anything...', 'buddypress' ) ?>';}" /></label>
    1194         <input type="submit" id="members_search_submit" name="members_search_submit" value="<?php _e( 'Search', 'buddypress' ) ?>" />
    1195         <?php wp_nonce_field( 'directory_members', '_wpnonce-member-filter' ) ?>
    1196     </form>
    1197 <?php
    1198 }
    1199 
    1200 function bp_home_blog_url() {
    1201     global $bp, $current_blog;
    1202 
    1203     if ( defined( 'BP_ENABLE_MULTIBLOG' ) ) {
    1204         $blog_id = $current_blog->blog_id;
    1205     } else {
    1206         $blog_id = BP_ROOT_BLOG;
    1207     }
    1208 
    1209     if ( 'bphome' == get_blog_option( $blog_id, 'template' ) )
    1210         echo $bp->root_domain . '/' . BP_HOME_BLOG_SLUG;
    1211     else
    1212         echo $bp->root_domain;
    1213 }
    1214 
    12151224
    12161225/* Template functions for fetching globals, without querying the DB again
     
    12381247}
    12391248
    1240 function bp_user_fullname() {
    1241     global $bp;
    1242     echo apply_filters( 'bp_user_fullname', $bp->displayed_user->fullname );
    1243 }
    1244     function bp_displayed_user_fullname() {
     1249
     1250function bp_displayed_user_fullname() {
     1251    echo bp_get_displayed_user_fullname();
     1252}
     1253    function bp_get_displayed_user_fullname() {
    12451254        global $bp;
    12461255
    12471256        return apply_filters( 'bp_displayed_user_fullname', $bp->displayed_user->fullname );
    12481257    }
     1258    function bp_user_fullname() { echo bp_get_displayed_user_fullname(); }
     1259
    12491260
    12501261function bp_loggedin_user_fullname() {
     
    12851296    }
    12861297
     1298/* This function will pass a AJAX built querystring to a loop in the template */
     1299function bp_ajax_querystring() {
     1300    global $bp;
     1301
     1302    return apply_filters( 'bp_ajax_querystring', $bp->ajax_querystring );
     1303}
     1304
    12871305/* Template is_() functions to determine the current page */
    12881306
     
    13721390
    13731391    if ( BP_ACTIVITY_SLUG == $bp->current_component && 'my-friends' == $bp->current_action )
     1392        return true;
     1393
     1394    return false;
     1395}
     1396
     1397function bp_is_activity_permalink() {
     1398    global $bp;
     1399
     1400    if ( BP_ACTIVITY_SLUG == $bp->current_component && is_numeric( $bp->current_action ) )
    13741401        return true;
    13751402
     
    17531780        if ( bp_is_user_activity() )
    17541781            $bp_classes[] = 'my-activity';
     1782
     1783        if ( bp_is_activity_permalink() )
     1784            $bp_classes[] = 'activity-permalink';
    17551785
    17561786        if ( bp_is_register_page() )
Note: See TracChangeset for help on using the changeset viewer.