Skip to:
Content

BuddyPress.org

Ticket #7135: 7135.01.patch

File 7135.01.patch, 6.1 KB (added by r-a-y, 8 years ago)
  • src/bp-activity/bp-activity-functions.php

     
    30303030                $link = $activity_obj->primary_link;
    30313031        } else {
    30323032                if ( 'activity_comment' == $activity_obj->type ) {
    3033                         $link = bp_get_root_domain() . '/' . bp_get_activity_root_slug() . '/p/' . $activity_obj->item_id . '/';
     3033                        $link = bp_get_root_domain() . '/' . bp_get_activity_root_slug() . '/p/' . $activity_obj->item_id . '/#acomment-' . $activity_obj->id;
    30343034                } else {
    30353035                        $link = bp_get_root_domain() . '/' . bp_get_activity_root_slug() . '/p/' . $activity_obj->id . '/';
    30363036                }
  • src/bp-activity/bp-activity-notifications.php

     
    242242                                $text   = sprintf( __( 'You have %1$d new replies', 'buddypress' ), (int) $total_items );
    243243                                $amount = 'multiple';
    244244                        } else {
    245                                 $link   = bp_activity_get_permalink( $activity_id );
    246                                 $text   =  sprintf( __( '%1$s commented on one of your updates', 'buddypress' ), $user_fullname );
     245                                $link = add_query_arg(
     246                                        array(
     247                                                'aid' => $activity_id,
     248                                                'n'   => 'update_reply'
     249                                        ),
     250                                        bp_activity_get_permalink( $activity_id )
     251                                );
     252                                $text =  sprintf( __( '%1$s commented on one of your updates', 'buddypress' ), $user_fullname );
    247253                        }
    248254                break;
    249255
     
    257263                                $text   = sprintf( __( 'You have %1$d new comment replies', 'buddypress' ), (int) $total_items );
    258264                                $amount = 'multiple';
    259265                        } else {
    260                                 $link   = bp_activity_get_permalink( $activity_id );
    261                                 $text   =  sprintf( __( '%1$s replied to one your activity comments', 'buddypress' ), $user_fullname );
     266                                $link = add_query_arg(
     267                                        array(
     268                                                'aid' => $activity_id,
     269                                                'n'   => 'comment_reply'
     270                                        ),
     271                                        bp_activity_get_permalink( $activity_id )
     272                                );
     273                                $text =  sprintf( __( '%1$s replied to one your activity comments', 'buddypress' ), $user_fullname );
    262274                        }
    263275                break;
    264276        }
     
    365377        if ( bp_is_active( 'notifications' ) ) {
    366378                bp_notifications_add_notification( array(
    367379                        'user_id'           => $activity->user_id,
    368                         'item_id'           => $activity->id,
     380                        'item_id'           => $comment_id,
    369381                        'secondary_item_id' => $commenter_id,
    370382                        'component_name'    => buddypress()->activity->id,
    371383                        'component_action'  => 'update_reply',
     
    389401        if ( bp_is_active( 'notifications' ) ) {
    390402                bp_notifications_add_notification( array(
    391403                        'user_id'           => $activity_comment->user_id,
    392                         'item_id'           => $activity_comment->item_id,
     404                        'item_id'           => $comment_id,
    393405                        'secondary_item_id' => $commenter_id,
    394406                        'component_name'    => buddypress()->activity->id,
    395407                        'component_action'  => 'comment_reply',
     
    426438 * Mark at-mention notification as read when user visits the activity with the mention.
    427439 *
    428440 * @since 2.0.0
    429  * @since 2.6.0 Mark notifications for 'update_reply' and 'comment_reply' actions
    430441 *
    431442 * @param BP_Activity_Activity $activity Activity object.
    432443 */
     
    439450                return;
    440451        }
    441452
    442         /**
    443          * Filter here to add the notification actions to mark as read
    444          * when the single activity is displayed.
    445          *
    446          * @since 2.6.0
    447          *
    448          * @param array $value List of notification actions to mark as read.
    449          */
    450         $notification_actions = apply_filters( 'bp_activity_notification_actions_single_activity', array(
    451                 'new_at_mention',
    452                 'update_reply',
    453                 'comment_reply',
    454         ) );
    455 
    456         $user_id   = bp_loggedin_user_id();
    457         $component = buddypress()->activity->id;
    458 
    459         foreach ( $notification_actions as $action ) {
    460                 // Mark as read any notifications for the current user related to this activity item.
    461                 bp_notifications_mark_notifications_by_item_id( $user_id, $activity->id, $component, $action );
    462         }
     453        // Mark as read any notifications for the current user related to this activity item.
     454        bp_notifications_mark_notifications_by_item_id( bp_loggedin_user_id(), $activity->id, buddypress()->activity->id, 'new_at_mention' );
    463455}
    464456add_action( 'bp_activity_screen_single_activity_permalink', 'bp_activity_remove_screen_notifications_single_activity_permalink' );
    465457
    466458/**
     459 * Mark non-mention notifications as read when user visits our read permalink.
     460 *
     461 * In particular, 'update_reply' and 'comment_reply' notifications are handled
     462 * here. See {@link bp_activity_format_notifications()} for more info.
     463 *
     464 * @since 2.6.0
     465 */
     466function bp_activity_remove_screen_notifications_for_non_mentions() {
     467        if ( false === bp_is_active( 'notifications' ) || false === is_singular() || false === is_user_logged_in() || empty( $_GET['aid'] ) || empty( $_GET['n'] ) ) {
     468                return;
     469        }
     470
     471        bp_notifications_mark_notifications_by_item_id( bp_loggedin_user_id(), $_GET['aid'], buddypress()->activity->id, $_GET['n'] );
     472}
     473add_action( 'bp_screens', 'bp_activity_remove_screen_notifications_for_non_mentions' );
     474
     475/**
    467476 * Delete at-mention notifications when the corresponding activity item is deleted.
    468477 *
    469478 * @since 2.0.0
  • src/bp-activity/bp-activity-template.php

     
    24202420         *
    24212421         * @since 1.8.0
    24222422         *
    2423          *
    24242423         * @return string $link The activity comment permalink.
    24252424         */
    24262425        function bp_get_activity_comment_permalink() {
    24272426                global $activities_template;
    24282427
    2429                 // Check that comment exists.
     2428                $link = bp_activity_get_permalink( $activities_template->activity->id, $activities_template->activity );
     2429
     2430                // Used for filter below.
    24302431                $comment_id = isset( $activities_template->activity->current_comment->id )
    24312432                        ? $activities_template->activity->current_comment->id
    24322433                        : 0;
    24332434
    2434                 // Setup the comment link.
    2435                 $comment_link = ! empty( $comment_id )
    2436                         ? '#acomment-' .$comment_id
    2437                         : false;
    2438 
    2439                 // Append comment ID to end of activity permalink.
    2440                 $link = bp_activity_get_permalink( $activities_template->activity->id, $activities_template->activity ) . $comment_link;
    2441 
    24422435                /**
    24432436                 * Filters the activity comment permalink.
    24442437                 *