Skip to:
Content

BuddyPress.org

Ticket #6750: 6750.patch

File 6750.patch, 4.9 KB (added by imath, 9 years ago)
  • src/bp-messages/bp-messages-notifications.php

    diff --git src/bp-messages/bp-messages-notifications.php src/bp-messages/bp-messages-notifications.php
    index 251fcf0..dd26aa1 100644
    add_action( 'messages_message_sent', 'messages_notification_new_message', 10 ); 
    163163 */
    164164function messages_format_notifications( $action, $item_id, $secondary_item_id, $total_items, $format = 'string' ) {
    165165        $total_items = (int) $total_items;
     166        $text        = '';
    166167        $link        = trailingslashit( bp_loggedin_user_domain() . bp_get_messages_slug() . '/inbox' );
    167168        $title       = __( 'Inbox', 'buddypress' );
    168169        $amount      = 'single';
    function messages_format_notifications( $action, $item_id, $secondary_item_id, $ 
    187188                                $text = sprintf( _n( 'You have %s new private message', 'You have %s new private messages', $total_items, 'buddypress' ), bp_core_number_format( $total_items ) );
    188189                        }
    189190                }
    190         }
    191191
    192         if ( 'string' === $format ) {
    193                 if ( ! empty( $link ) ) {
    194                         $retval = '<a href="' . esc_url( $link ) . '" title="' . esc_attr( $title ) . '">' . esc_html( $text ) . '</a>';
     192                if ( 'string' === $format ) {
     193                        if ( ! empty( $link ) ) {
     194                                $retval = '<a href="' . esc_url( $link ) . '" title="' . esc_attr( $title ) . '">' . esc_html( $text ) . '</a>';
     195                        } else {
     196                                $retval = esc_html( $text );
     197                        }
     198
     199                        /**
     200                         * Filters the new message notification text before the notification is created.
     201                         *
     202                         * This is a dynamic filter. Possible filter names are:
     203                         *   - 'bp_messages_multiple_new_message_notification'.
     204                         *   - 'bp_messages_single_new_message_notification'.
     205                         *
     206                         * @param string $retval            Notification text.
     207                         * @param int    $total_items       Number of messages referred to by the notification.
     208                         * @param string $text              The raw notification test (ie, not wrapped in a link).
     209                         * @param int    $item_id           ID of the associated item.
     210                         * @param int    $secondary_item_id ID of the secondary associated item.
     211                         */
     212                        $return = apply_filters( 'bp_messages_' . $amount . '_new_message_notification', $retval, (int) $total_items, $text, $link, $item_id, $secondary_item_id );
    195213                } else {
    196                         $retval = esc_html( $text );
     214                        /** This filter is documented in bp-messages/bp-messages-notifications.php */
     215                        $return = apply_filters( 'bp_messages_' . $amount . '_new_message_notification', array(
     216                                'text' => $text,
     217                                'link' => $link
     218                        ), $link, (int) $total_items, $text, $link, $item_id, $secondary_item_id );
     219                }
     220
     221        // Custom notification action for the Messages component
     222        } else {
     223                $return_array = array(
     224                        'text' => $text,
     225                        'link' => $link
     226                );
     227
     228                /**
     229                 * Backcompat for plugins that used to filter bp_messages_single_new_message_notification
     230                 * for their custom actions. These plugins should now use 'bp_messages_' . $action . '_notification'
     231                 */
     232                if ( 'new_message' !== $action && has_filter( 'bp_messages_single_new_message_notification' ) ) {
     233                        $return_array = apply_filters( 'bp_messages_single_new_message_notification', $return_array, $link, (int) $total_items, $text, $link, $item_id, $secondary_item_id );
    197234                }
    198235
    199236                /**
    200                  * Filters the new message notification text before the notification is created.
     237                 * Filters the custom action notification text before the notification is created.
    201238                 *
    202                  * This is a dynamic filter. Possible filter names are:
    203                  *   - 'bp_messages_multiple_new_message_notification'.
    204                  *   - 'bp_messages_single_new_message_notification'.
     239                 * @since 2.5
    205240                 *
    206                  * @param string $retval            Notification text.
    207                  * @param int    $total_items       Number of messages referred to by the notification.
    208                  * @param string $text              The raw notification test (ie, not wrapped in a link).
     241                 * @param array  $value             An associative array containing the text and the link of the notification
    209242                 * @param int    $item_id           ID of the associated item.
    210243                 * @param int    $secondary_item_id ID of the secondary associated item.
     244                 * @param int    $total_items       Number of messages referred to by the notification.
     245                 * @param string $format            Return value format. 'string' for BuddyBar-compatible
     246                 *                                  notifications; 'array' for WP Toolbar. Default: 'string'.
    211247                 */
    212                 $return = apply_filters( 'bp_messages_' . $amount . '_new_message_notification', $retval, (int) $total_items, $text, $link, $item_id, $secondary_item_id );
    213         } else {
    214                 /** This filter is documented in bp-messages/bp-messages-notifications.php */
    215                 $return = apply_filters( 'bp_messages_' . $amount . '_new_message_notification', array(
    216                         'text' => $text,
    217                         'link' => $link
    218                 ), $link, (int) $total_items, $text, $link, $item_id, $secondary_item_id );
     248                $return = apply_filters( 'bp_messages_' . $action . '_notification', $return_array, $item_id, $secondary_item_id, $total_items, $format );
    219249        }
    220250
    221251        /**