Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
01/22/2013 07:19:12 PM (14 years ago)
Author:
johnjamesjacoby
Message:

Better friend ID handling in ajax add/remove friend handler in bp-default and bp-legacy. Props Maty.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-templates/bp-legacy/buddypress-functions.php

    r6733 r6739  
    838838 */
    839839function bp_legacy_theme_ajax_addremove_friend() {
    840         // Bail if not a POST action
    841         if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
    842                 return;
    843 
    844         if ( 'is_friend' == BP_Friends_Friendship::check_is_friend( bp_loggedin_user_id(), $_POST['fid'] ) ) {
     840
     841        // Bail if not a POST action
     842        if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
     843                return;
     844
     845        // Cast fid as an integer
     846        $friend_id = (int) $_POST['fid'];
     847
     848        // Trying to cancel friendship
     849        if ( 'is_friend' == BP_Friends_Friendship::check_is_friend( bp_loggedin_user_id(), $friend_id ) ) {
    845850                check_ajax_referer( 'friends_remove_friend' );
    846851
    847                 if ( ! friends_remove_friend( bp_loggedin_user_id(), $_POST['fid'] ) )
     852                if ( ! friends_remove_friend( bp_loggedin_user_id(), $friend_id ) ) {
    848853                        echo __( 'Friendship could not be canceled.', 'buddypress' );
    849                 else
    850                         echo '<a id="friend-' . $_POST['fid'] . '" class="add" rel="add" title="' . __( 'Add Friend', 'buddypress' ) . '" href="' . wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/add-friend/' . $_POST['fid'], 'friends_add_friend' ) . '">' . __( 'Add Friend', 'buddypress' ) . '</a>';
    851 
    852         } elseif ( 'not_friends' == BP_Friends_Friendship::check_is_friend( bp_loggedin_user_id(), $_POST['fid'] ) ) {
     854                } else {
     855                        echo '<a id="friend-' . esc_attr( $friend_id ) . '" class="add" rel="add" title="' . __( 'Add Friend', 'buddypress' ) . '" href="' . wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/add-friend/' . $friend_id, 'friends_add_friend' ) . '">' . __( 'Add Friend', 'buddypress' ) . '</a>';
     856                }
     857
     858        // Trying to request friendship
     859        } elseif ( 'not_friends' == BP_Friends_Friendship::check_is_friend( bp_loggedin_user_id(), $friend_id ) ) {
    853860                check_ajax_referer( 'friends_add_friend' );
    854861
    855                 if ( ! friends_add_friend( bp_loggedin_user_id(), $_POST['fid'] ) )
     862                if ( ! friends_add_friend( bp_loggedin_user_id(), $friend_id ) ) {
    856863                        echo __(' Friendship could not be requested.', 'buddypress' );
    857                 else
    858                         echo '<a id="friend-' . $_POST['fid'] . '" class="remove" rel="remove" title="' . __( 'Cancel Friendship Request', 'buddypress' ) . '" href="' . wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/requests/cancel/' . (int) $_POST['fid'] . '/', 'friends_withdraw_friendship' ) . '" class="requested">' . __( 'Cancel Friendship Request', 'buddypress' ) . '</a>';
    859 
    860         } elseif ( 'pending' == BP_Friends_Friendship::check_is_friend( bp_loggedin_user_id(), (int) $_POST['fid'] ) ) {
     864                } else {
     865                        echo '<a id="friend-' . esc_attr( $friend_id ) . '" class="remove" rel="remove" title="' . __( 'Cancel Friendship Request', 'buddypress' ) . '" href="' . wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/requests/cancel/' . $friend_id . '/', 'friends_withdraw_friendship' ) . '" class="requested">' . __( 'Cancel Friendship Request', 'buddypress' ) . '</a>';
     866                }
     867
     868        // Trying to cancel pending request
     869        } elseif ( 'pending' == BP_Friends_Friendship::check_is_friend( bp_loggedin_user_id(), $friend_id ) ) {
    861870                check_ajax_referer( 'friends_withdraw_friendship' );
    862871
    863                 if ( friends_withdraw_friendship( bp_loggedin_user_id(), (int) $_POST['fid'] ) )
    864                         echo '<a id="friend-' . $_POST['fid'] . '" class="add" rel="add" title="' . __( 'Add Friend', 'buddypress' ) . '" href="' . wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/add-friend/' . $_POST['fid'], 'friends_add_friend' ) . '">' . __( 'Add Friend', 'buddypress' ) . '</a>';
    865                 else
     872                if ( friends_withdraw_friendship( bp_loggedin_user_id(), $friend_id ) ) {
     873                        echo '<a id="friend-' . esc_attr( $friend_id ) . '" class="add" rel="add" title="' . __( 'Add Friend', 'buddypress' ) . '" href="' . wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/add-friend/' . $friend_id, 'friends_add_friend' ) . '">' . __( 'Add Friend', 'buddypress' ) . '</a>';
     874                } else {
    866875                        echo __("Friendship request could not be cancelled.", 'buddypress');
    867 
     876                }
     877
     878        // Request already pending
    868879        } else {
    869880                echo __( 'Request Pending', 'buddypress' );
Note: See TracChangeset for help on using the changeset viewer.