Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
12/14/2009 03:24:05 PM (17 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.