Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
01/10/2010 08:42:42 PM (16 years ago)
Author:
apeatling
Message:

Shifted the filter select from the main activity page tab row onto a second row to accommodate the missing feed link (links will be altered on an upcoming commit). Added a mentions tab. Tweaked a couple of css styles and ID's for better re-use.

File:
1 edited

Legend:

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

    r2277 r2287  
    11<?php
     2
     3function bp_activity_at_message_notification( $content, $poster_user_id, $activity_id ) {
     4    global $bp;
     5
     6    /* Scan for @username strings in an activity update. Notify each user. */
     7    $pattern = '/[@]+([A-Za-z0-9-_]+)/';
     8    preg_match_all( $pattern, $content, $usernames );
     9
     10    /* Make sure there's only one instance of each username */
     11    if ( !$usernames = array_unique( $usernames[1] ) )
     12        return false;
     13
     14    foreach( (array)$usernames as $username ) {
     15        if ( !$receiver_user_id = bp_core_get_userid($username) )
     16            continue;
     17
     18        // Add a screen notification of an @message
     19        bp_core_add_notification( $activity_id, $receiver_user_id, $bp->activity->id, 'new_at_mention', $poster_user_id );
     20
     21        // Now email the user with the contents of the message (if they have enabled email notifications)
     22        if ( !get_usermeta( $user_id, 'notification_activity_new_mention' ) || 'yes' == get_usermeta( $user_id, 'notification_activity_new_mention' ) ) {
     23            $poster_name = bp_core_get_user_displayname( $poster_user_id );
     24
     25            $message_link = bp_activity_get_permalink( $activity_id );
     26            $settings_link = bp_core_get_user_domain( $user_id ) . 'settings/notifications/';
     27
     28            // Set up and send the message
     29            $ud = get_userdata( $receiver_user_id );
     30            $to = $ud->user_email;
     31            $subject = '[' . get_blog_option( BP_ROOT_BLOG, 'blogname' ) . '] ' . sprintf( __( '%s mentioned you in an update', 'buddypress' ), stripslashes($poster_name) );
     32
     33$message = sprintf( __(
     34'%s mentioned you in an update:
     35
     36"%s"
     37
     38To view and respond to the message, log in and visit: %s
     39
     40---------------------
     41', 'buddypress' ), $poster_name, wp_filter_kses( stripslashes($content) ), $message_link );
     42
     43            $message .= sprintf( __( 'To disable these notifications please log in and go to: %s', 'buddypress' ), $settings_link );
     44
     45            // Send it
     46            wp_mail( $to, $subject, $message );
     47        }
     48    }
     49}
     50add_action( 'bp_activity_posted_update', 'bp_activity_at_message_notification', 10, 3 );
    251
    352function bp_activity_new_comment_notification( $comment_id, $params ) {
Note: See TracChangeset for help on using the changeset viewer.