Skip to:
Content

BuddyPress.org

Changeset 2463


Ignore:
Timestamp:
01/27/2010 11:24:01 AM (15 years ago)
Author:
apeatling
Message:

Fixes #1638

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-activity/bp-activity-notifications.php

    r2290 r2463  
    2121
    2222            $message_link = bp_activity_get_permalink( $activity_id );
    23             $settings_link = bp_core_get_user_domain( $user_id ) . 'settings/notifications/';
     23            $settings_link = bp_core_get_user_domain( $receiver_user_id ) . 'settings/notifications/';
    2424
    2525            // Set up and send the message
    26             $ud = get_userdata( $receiver_user_id );
     26            $ud = bp_core_get_core_userdata( $receiver_user_id );
    2727            $to = $ud->user_email;
    2828            $subject = '[' . get_blog_option( BP_ROOT_BLOG, 'blogname' ) . '] ' . sprintf( __( '%s mentioned you in an update', 'buddypress' ), stripslashes($poster_name) );
     
    6363
    6464        // Set up and send the message
    65         $ud = get_userdata( $original_activity->user_id );
     65        $ud = bp_core_get_core_userdata( $original_activity->user_id );
    6666        $to = $ud->user_email;
    6767        $subject = '[' . get_blog_option( BP_ROOT_BLOG, 'blogname' ) . '] ' . sprintf( __( '%s replied to one of your updates', 'buddypress' ), stripslashes_deep( $poster_name ) );
  • trunk/bp-activity/bp-activity-templatetags.php

    r2456 r2463  
    367367        global $activities_template;
    368368
    369         if ( empty( $activities_template->activity->action ) )
    370             $content = bp_activity_content_filter( $activities_template->activity->content, $activities_template->activity->date_recorded );
    371         else {
    372             $content = bp_activity_content_filter( $activities_template->activity->action, $activities_template->activity->date_recorded );
    373             $content .= $activities_template->activity->content;
    374         }
    375 
    376         return apply_filters( 'bp_get_activity_content', $content, $activities_template->activity->component, $activities_template->activity->type );
     369        /***
     370         * If you want to filter activity update content, please use
     371         * the filter 'bp_get_activity_content_body'
     372         *
     373         * This function is mainly for backwards comptibility.
     374         */
     375
     376        $content = bp_get_activity_action() . bp_get_activity_content_body();
     377        return apply_filters( 'bp_get_activity_content', $content );
    377378    }
    378379
  • trunk/bp-groups.php

    r2460 r2463  
    13651365            } else {
    13661366                $user_fullname = bp_core_get_user_displayname( $requesting_user_id );
    1367                 return apply_filters( 'bp_groups_single_new_membership_request_notification', '<a href="' . $group_link . '/admin/membership-requests/?n=1" title="' . $user_fullname .' requests group membership">' . sprintf( __('%s requests membership for the group "%s"', 'buddypress' ), $user_fullname, $group->name ) . '</a>', $group_link, $user_fullname, $group->name );
     1367                return apply_filters( 'bp_groups_single_new_membership_request_notification', '<a href="' . $group_link . 'admin/membership-requests/?n=1" title="' . $user_fullname .' requests group membership">' . sprintf( __('%s requests membership for the group "%s"', 'buddypress' ), $user_fullname, $group->name ) . '</a>', $group_link, $user_fullname, $group->name );
    13681368            }
    13691369        break;
     
    13781378                return apply_filters( 'bp_groups_multiple_membership_request_accepted_notification', '<a href="' . $bp->loggedin_user->domain . $bp->groups->slug . '/?n=1" title="' . __( 'Groups', 'buddypress' ) . '">' . sprintf( __('%d accepted group membership requests', 'buddypress' ), (int)$total_items, $group->name ) . '</a>', $total_items, $group_name );
    13791379            } else {
    1380                 return apply_filters( 'bp_groups_single_membership_request_accepted_notification', '<a href="' . $group_link . '/?n=1">' . sprintf( __('Membership for group "%s" accepted'), $group->name ) . '</a>', $group_link, $group->name );
     1380                return apply_filters( 'bp_groups_single_membership_request_accepted_notification', '<a href="' . $group_link . '?n=1">' . sprintf( __('Membership for group "%s" accepted'), $group->name ) . '</a>', $group_link, $group->name );
    13811381            }
    13821382        break;
     
    13911391                return apply_filters( 'bp_groups_multiple_membership_request_rejected_notification', '<a href="' . site_url() . '/' . BP_MEMBERS_SLUG . '/' . $bp->groups->slug . '/?n=1" title="' . __( 'Groups', 'buddypress' ) . '">' . sprintf( __('%d rejected group membership requests', 'buddypress' ), (int)$total_items, $group->name ) . '</a>', $total_items, $group->name );
    13921392            } else {
    1393                 return apply_filters( 'bp_groups_single_membership_request_rejected_notification', '<a href="' . $group_link . '/?n=1">' . sprintf( __('Membership for group "%s" rejected'), $group->name ) . '</a>', $group_link, $group->name );
     1393                return apply_filters( 'bp_groups_single_membership_request_rejected_notification', '<a href="' . $group_link . '?n=1">' . sprintf( __('Membership for group "%s" rejected'), $group->name ) . '</a>', $group_link, $group->name );
    13941394            }
    13951395
     
    14051405                return apply_filters( 'bp_groups_multiple_member_promoted_to_admin_notification', '<a href="' . $bp->loggedin_user->domain . $bp->groups->slug . '/?n=1" title="' . __( 'Groups', 'buddypress' ) . '">' . sprintf( __('You were promoted to an admin in %d groups', 'buddypress' ), (int)$total_items ) . '</a>', $total_items );
    14061406            } else {
    1407                 return apply_filters( 'bp_groups_single_member_promoted_to_admin_notification', '<a href="' . $group_link . '/?n=1">' . sprintf( __('You were promoted to an admin in the group %s'), $group->name ) . '</a>', $group_link, $group->name );
     1407                return apply_filters( 'bp_groups_single_member_promoted_to_admin_notification', '<a href="' . $group_link . '?n=1">' . sprintf( __('You were promoted to an admin in the group %s'), $group->name ) . '</a>', $group_link, $group->name );
    14081408            }
    14091409        break;
     
    14181418                return apply_filters( 'bp_groups_multiple_member_promoted_to_mod_notification', '<a href="' . $bp->loggedin_user->domain . $bp->groups->slug . '/?n=1" title="' . __( 'Groups', 'buddypress' ) . '">' . sprintf( __('You were promoted to a mod in %d groups', 'buddypress' ), (int)$total_items ) . '</a>', $total_items );
    14191419            } else {
    1420                 return apply_filters( 'bp_groups_single_member_promoted_to_mod_notification', '<a href="' . $group_link . '/?n=1">' . sprintf( __('You were promoted to a mod in the group %s'), $group->name ) . '</a>', $group_link, $group->name );
     1420                return apply_filters( 'bp_groups_single_member_promoted_to_mod_notification', '<a href="' . $group_link . '?n=1">' . sprintf( __('You were promoted to a mod in the group %s'), $group->name ) . '</a>', $group_link, $group->name );
    14211421            }
    14221422        break;
     
    19071907        'item_id' => $bp->groups->current_group->id
    19081908    ) );
     1909
     1910    /* Require the notifications code so email notifications can be set on the 'bp_activity_posted_update' action. */
     1911    require_once( BP_PLUGIN_DIR . '/bp-groups/bp-groups-notifications.php' );
    19091912
    19101913    do_action( 'bp_groups_posted_update', $content, $user_id, $group_id, $activity_id );
  • trunk/bp-groups/bp-groups-notifications.php

    r2413 r2463  
    1010        if ( 'no' == get_usermeta( $user->user_id, 'notification_groups_group_updated' ) ) continue;
    1111
    12         $ud = get_userdata( $user->user_id );
     12        $ud = bp_core_get_core_userdata( $user->user_id );
    1313
    1414        // Set up and send the message
     
    4646    $group = new BP_Groups_Group( $group_id, false, false );
    4747
    48     $ud = get_userdata($admin_id);
    49     $requesting_ud = get_userdata($requesting_user_id);
     48    $ud = bp_core_get_core_userdata($admin_id);
     49    $requesting_ud = bp_core_get_core_userdata($requesting_user_id);
    5050
    5151    $group_requests = bp_get_group_permalink( $group ) . 'admin/membership-requests';
     
    9090    $group = new BP_Groups_Group( $group_id, false, false );
    9191
    92     $ud = get_userdata($requesting_user_id);
     92    $ud = bp_core_get_core_userdata($requesting_user_id);
    9393
    9494    $group_link = bp_get_group_permalink( $group );
     
    143143
    144144    $group = new BP_Groups_Group( $group_id, false, false );
    145     $ud = get_userdata($user_id);
     145    $ud = bp_core_get_core_userdata($user_id);
    146146
    147147    $group_link = bp_get_group_permalink( $group );
     
    171171    global $bp;
    172172
    173     $inviter_ud = get_userdata( $inviter_user_id );
     173    $inviter_ud = bp_core_get_core_userdata( $inviter_user_id );
    174174    $inviter_name = bp_core_get_userlink( $inviter_user_id, true, false, true );
    175175    $inviter_link = bp_core_get_user_domain( $inviter_user_id );
     
    186186            return false;
    187187
    188         $invited_ud = get_userdata($invited_user_id);
     188        $invited_ud = bp_core_get_core_userdata($invited_user_id);
    189189
    190190        $settings_link = bp_core_get_user_domain( $invited_user_id ) . 'settings/notifications/';
     
    216216}
    217217
     218function groups_at_message_notification( $content, $poster_user_id, $group_id, $activity_id ) {
     219    global $bp;
     220
     221    /* Scan for @username strings in an activity update. Notify each user. */
     222    $pattern = '/[@]+([A-Za-z0-9-_]+)/';
     223    preg_match_all( $pattern, $content, $usernames );
     224
     225    /* Make sure there's only one instance of each username */
     226    if ( !$usernames = array_unique( $usernames[1] ) )
     227        return false;
     228
     229    $group = new BP_Groups_Group( $group_id, false, false );
     230
     231    foreach( (array)$usernames as $username ) {
     232        if ( !$receiver_user_id = bp_core_get_userid($username) )
     233            continue;
     234
     235        /* Check the user is a member of the group before sending the update. */
     236        if ( !groups_is_user_member( $receiver_user_id, $group_id ) )
     237            continue;
     238
     239        // Now email the user with the contents of the message (if they have enabled email notifications)
     240        if ( !get_usermeta( $user_id, 'notification_activity_new_mention' ) || 'yes' == get_usermeta( $user_id, 'notification_activity_new_mention' ) ) {
     241            $poster_name = bp_core_get_user_displayname( $poster_user_id );
     242
     243            $message_link = bp_activity_get_permalink( $activity_id );
     244            $settings_link = bp_core_get_user_domain( $receiver_user_id ) . 'settings/notifications/';
     245
     246            // Set up and send the message
     247            $ud = bp_core_get_core_userdata( $receiver_user_id );
     248            $to = $ud->user_email;
     249            $subject = '[' . get_blog_option( BP_ROOT_BLOG, 'blogname' ) . '] ' . sprintf( __( '%s mentioned you in the group "%s"', 'buddypress' ), stripslashes( $poster_name ), wp_filter_kses( stripslashes( $group->name ) ) );
     250
     251$message = sprintf( __(
     252'%s mentioned you in the group "%s":
     253
     254"%s"
     255
     256To view and respond to the message, log in and visit: %s
     257
     258---------------------
     259', 'buddypress' ), $poster_name, wp_filter_kses( stripslashes( $group->name ) ), wp_filter_kses( stripslashes($content) ), $message_link );
     260
     261            $message .= sprintf( __( 'To disable these notifications please log in and go to: %s', 'buddypress' ), $settings_link );
     262
     263            // Send it
     264            wp_mail( $to, $subject, $message );
     265        }
     266    }
     267}
     268add_action( 'bp_groups_posted_update', 'groups_at_message_notification', 10, 4 );
     269
     270
    218271?>
Note: See TracChangeset for help on using the changeset viewer.