Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
09/13/2010 01:08:31 AM (14 years ago)
Author:
johnjamesjacoby
Message:

Committing patch from #2566 for easier review and testing. Adds BP_Button class and associated template tags. Also includes code formatting fixes, phpdoc, widget fixes when friends component is disabled, and possibly the kitchen sink.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/1.2/bp-friends/bp-friends-templatetags.php

    r3162 r3260  
    105105        <form action="<?php echo $action ?>" id="friend-search-form" method="post">
    106106
    107         <label for="friend-search-box" id="friend-search-label"><?php echo $label ?></label>
    108         <input type="search" name="friend-search-box" id="friend-search-box" value="<?php echo $value ?>"<?php echo $disabled ?> />
    109 
    110         <?php wp_nonce_field( 'friends_search', '_wpnonce_friend_search' ) ?>
    111         <input type="hidden" name="initiator" id="initiator" value="<?php echo esc_attr( $bp->displayed_user->id ) ?>" />
     107            <label for="friend-search-box" id="friend-search-label"><?php echo $label ?></label>
     108            <input type="search" name="friend-search-box" id="friend-search-box" value="<?php echo $value ?>"<?php echo $disabled ?> />
     109
     110            <?php wp_nonce_field( 'friends_search', '_wpnonce_friend_search' ) ?>
     111            <input type="hidden" name="initiator" id="initiator" value="<?php echo esc_attr( $bp->displayed_user->id ) ?>" />
    112112
    113113        </form>
     
    115115}
    116116
    117 function bp_add_friend_button( $potential_friend_id = false, $friend_status = false ) {
     117function bp_member_add_friend_button() {
     118    global $members_template;
     119
     120    if ( null === $members_template->member->is_friend )
     121        $friend_status = 'not_friends';
     122    else
     123        $friend_status = ( 0 == $members_template->member->is_friend ) ? 'pending' : 'is_friend';
     124
     125    echo bp_get_add_friend_button( $members_template->member->id, $friend_status );
     126}
     127add_action( 'bp_directory_members_actions', 'bp_member_add_friend_button' );
     128
     129function bp_member_total_friend_count() {
     130    global $members_template;
     131
     132    echo bp_get_member_total_friend_count();
     133}
     134    function bp_get_member_total_friend_count() {
     135        global $members_template;
     136
     137        if ( 1 == (int) $members_template->member->total_friend_count )
     138            return apply_filters( 'bp_get_member_total_friend_count', sprintf( __( '%d friend', 'buddypress' ), (int) $members_template->member->total_friend_count ) );
     139        else
     140            return apply_filters( 'bp_get_member_total_friend_count', sprintf( __( '%d friends', 'buddypress' ), (int) $members_template->member->total_friend_count ) );
     141    }
     142
     143/**
     144 * bp_potential_friend_id( $user_id )
     145 *
     146 * Outputs the ID of the potential friend
     147 *
     148 * @uses bp_get_potential_friend_id()
     149 * @param <type> $user_id
     150 */
     151function bp_potential_friend_id( $user_id = 0 ) {
     152    echo bp_get_potential_friend_id( $user_id );
     153}
     154    /**
     155     * bp_get_potential_friend_id( $user_id )
     156     *
     157     * Returns the ID of the potential friend
     158     *
     159     * @global object $bp
     160     * @global object $friends_template
     161     * @param int $user_id
     162     * @return int ID of potential friend
     163     */
     164    function bp_get_potential_friend_id( $user_id = 0 ) {
     165        global $bp, $friends_template;
     166
     167        if ( empty( $user_id ) && isset( $friends_template->friendship->friend ) )
     168            $user_id = $friends_template->friendship->friend->id;
     169        else if ( empty( $user_id ) && !isset( $friends_template->friendship->friend ) )
     170            $user_id = $bp->displayed_user->id;
     171
     172        return apply_filters( 'bp_get_potential_friend_id', (int)$user_id );
     173    }
     174
     175/**
     176 * bp_is_friend( $user_id )
     177 *
     178 * Returns - 'is_friend', 'not_friends', 'pending'
     179 *
     180 * @global object $bp
     181 * @param int $potential_friend_id
     182 * @return string
     183 */
     184function bp_is_friend( $user_id = 0 ) {
     185    global $bp;
     186
     187    if ( !is_user_logged_in() )
     188        return false;
     189
     190    if ( empty( $user_id ) )
     191        $user_id = bp_get_potential_friend_id( $user_id );
     192
     193    if ( $bp->loggedin_user->id == $user_id )
     194        return false;
     195
     196    return apply_filters( 'bp_is_friend', friends_check_friendship_status( $bp->loggedin_user->id, $user_id ), $user_id );
     197}
     198
     199function bp_add_friend_button( $potential_friend_id = 0, $friend_status = false ) {
    118200    echo bp_get_add_friend_button( $potential_friend_id, $friend_status );
    119201}
    120     function bp_get_add_friend_button( $potential_friend_id = false, $friend_status = false ) {
     202    function bp_get_add_friend_button( $potential_friend_id = 0, $friend_status = false ) {
    121203        global $bp, $friends_template;
    122204
    123         if ( !is_user_logged_in() )
     205        if ( empty( $potential_friend_id ) )
     206            $potential_friend_id = bp_get_potential_friend_id( $potential_friend_id );
     207
     208        $is_friend = bp_is_friend( $potential_friend_id );
     209
     210        if ( empty( $is_friend ) )
    124211            return false;
    125212
    126         if ( !$potential_friend_id && $friends_template->friendship->friend )
    127             $potential_friend_id = $friends_template->friendship->friend->id;
    128         else if ( !$potential_friend_id && !$friends_template->friendship->friend )
    129             $potential_friend_id = $bp->displayed_user->id;
    130 
    131         if ( $bp->loggedin_user->id == $potential_friend_id )
    132             return false;
    133 
    134         if ( empty( $friend_status ) )
    135             $friend_status = friends_check_friendship_status( $bp->loggedin_user->id, $potential_friend_id );
    136 
    137         $button = '<div class="generic-button friendship-button ' . $friend_status . '" id="friendship-button-' . $potential_friend_id . '">';
    138 
    139         if ( 'pending' == $friend_status )
    140             $button .= '<a class="requested" href="' . $bp->loggedin_user->domain . $bp->friends->slug . '/">' . __( 'Friendship Requested', 'buddypress' ) . '</a>';
    141         else if ( 'is_friend' == $friend_status )
    142             $button .= '<a href="' . wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/remove-friend/' . $potential_friend_id . '/', 'friends_remove_friend' ) . '" title="' . __('Cancel Friendship', 'buddypress') . '" id="friend-' . $potential_friend_id . '" rel="remove" class="remove">' . __('Cancel Friendship', 'buddypress') . '</a>';
    143         else
    144             $button .= '<a href="' . wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/add-friend/' . $potential_friend_id . '/', 'friends_add_friend' ) . '" title="' . __('Add Friend', 'buddypress') . '" id="friend-' . $potential_friend_id . '" rel="add" class="add">' . __('Add Friend', 'buddypress') . '</a>';
    145 
    146         $button .= '</div>';
    147 
    148         return apply_filters( 'bp_get_add_friend_button', $button, $potential_friend_id, $friend_status );
     213        switch ( $is_friend ) {
     214            case 'pending' :
     215                $button = array(
     216                    'id'                => 'pending',
     217                    'component'         => 'friends',
     218                    'must_be_logged_in' => true,
     219                    'block_self'        => true,
     220                    'wrapper_class'     => 'friendship-button pending',
     221                    'wrapper_id'        => 'friendship-button-' . $potential_friend_id,
     222                    'link_class'        => 'requested',
     223                    'link_href'         => trailingslashit( $bp->loggedin_user->domain . $bp->friends->slug ),
     224                    'link_text'         => __( 'Friendship Requested', 'buddypress' ),
     225                    'link_title'        => __( 'Friendship Requested', 'buddypress' )
     226                );
     227                break;
     228
     229            case 'is_friend' :
     230                $button = array(
     231                    'id'                => 'is_friend',
     232                    'component'         => 'friends',
     233                    'must_be_logged_in' => true,
     234                    'block_self'        => true,
     235                    'wrapper_class'     => 'friendship-button is_friend',
     236                    'wrapper_id'        => 'friendship-button-' . $potential_friend_id,
     237                    'link_class'        => '',
     238                    'link_href'         => wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/remove-friend/' . $potential_friend_id . '/', 'friends_remove_friend' ),
     239                    'link_text'         => __( 'Cancel Friendship', 'buddypress' ),
     240                    'link_title'        => __( 'Cancel Friendship', 'buddypress' ),
     241                    'link_id'           => 'friend-' . $potential_friend_id,
     242                    'link_rel'          => 'remove',
     243                    'link_class'        => 'remove'
     244                );
     245                break;
     246
     247            default:
     248                $button = array(
     249                    'id'                => 'not_friends',
     250                    'component'         => 'friends',
     251                    'must_be_logged_in' => true,
     252                    'block_self'        => true,
     253                    'wrapper_class'     => 'friendship-button not_friends',
     254                    'wrapper_id'        => 'friendship-button-' . $potential_friend_id,
     255                    'link_class'        => '',
     256                    'link_href'         => wp_nonce_url( $bp->loggedin_user->domain . $bp->friends->slug . '/add-friend/' . $potential_friend_id . '/', 'friends_add_friend' ),
     257                    'link_text'         => __( 'Add Friend', 'buddypress' ),
     258                    'link_title'        => __( 'Add Friend', 'buddypress' ),
     259                    'link_id'           => 'friend-' . $potential_friend_id,
     260                    'link_rel'          => 'add',
     261                    'link_class'        => 'add'
     262                );
     263                break;
     264        }
     265
     266        // Filter and return the HTML button
     267        return bp_get_button( apply_filters( 'bp_get_add_friend_button', $button ) );
    149268    }
    150269
     
    210329    }
    211330
    212 function bp_total_friend_count( $user_id = false ) {
     331function bp_total_friend_count( $user_id = 0 ) {
    213332    echo bp_get_total_friend_count( $user_id );
    214333}
    215     function bp_get_total_friend_count( $user_id = false ) {
     334    function bp_get_total_friend_count( $user_id = 0 ) {
    216335        return apply_filters( 'bp_get_total_friend_count', friends_get_total_friend_count( $user_id ) );
    217336    }
    218337    add_filter( 'bp_get_total_friend_count', 'bp_core_number_format' );
    219338
    220 function bp_friend_total_requests_count( $user_id = false ) {
     339function bp_friend_total_requests_count( $user_id = 0 ) {
    221340    echo bp_friend_get_total_requests_count( $user_id );
    222341}
    223     function bp_friend_get_total_requests_count( $user_id = false ) {
     342    function bp_friend_get_total_requests_count( $user_id = 0 ) {
    224343        global $bp;
    225344
    226         if ( !$user_id )
     345        if ( empty( $user_id ) )
    227346            $user_id = $bp->loggedin_user->id;
    228347
Note: See TracChangeset for help on using the changeset viewer.