Skip to:
Content

BuddyPress.org

Changeset 10788


Ignore:
Timestamp:
05/19/2016 05:43:23 PM (10 years ago)
Author:
r-a-y
Message:

Notifications: Make notification meta great again.

This commit fixes this for the betterment of notifications everywhere.

Fixes #7067.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-notifications/bp-notifications-functions.php

    r10725 r10788  
    702702        add_filter( 'query', 'bp_filter_metaid_column_name' );
    703703        foreach ( $keys as $key ) {
    704                 $retval = delete_metadata( 'notifications', $notification_id, $key, $meta_value, $delete_all );
     704                $retval = delete_metadata( 'notification', $notification_id, $key, $meta_value, $delete_all );
    705705        }
    706706        remove_filter( 'query', 'bp_filter_metaid_column_name' );
    … …  
    727727function bp_notifications_get_meta( $notification_id = 0, $meta_key = '', $single = true ) {
    728728        add_filter( 'query', 'bp_filter_metaid_column_name' );
    729         $retval = get_metadata( 'notifications', $notification_id, $meta_key, $single );
     729        $retval = get_metadata( 'notification', $notification_id, $meta_key, $single );
    730730        remove_filter( 'query', 'bp_filter_metaid_column_name' );
    731731
    … …  
    762762function bp_notifications_update_meta( $notification_id, $meta_key, $meta_value, $prev_value = '' ) {
    763763        add_filter( 'query', 'bp_filter_metaid_column_name' );
    764         $retval = update_metadata( 'notifications', $notification_id, $meta_key, $meta_value, $prev_value );
     764        $retval = update_metadata( 'notification', $notification_id, $meta_key, $meta_value, $prev_value );
    765765        remove_filter( 'query', 'bp_filter_metaid_column_name' );
    766766
    … …  
    783783function bp_notifications_add_meta( $notification_id, $meta_key, $meta_value, $unique = false ) {
    784784        add_filter( 'query', 'bp_filter_metaid_column_name' );
    785         $retval = add_metadata( 'notifications', $notification_id, $meta_key, $meta_value, $unique );
     785        $retval = add_metadata( 'notification', $notification_id, $meta_key, $meta_value, $unique );
    786786        remove_filter( 'query', 'bp_filter_metaid_column_name' );
    787787
  • trunk/src/bp-notifications/classes/class-bp-notifications-component.php

    r10675 r10788  
    8383                );
    8484
     85                // Metadata tables for notifications component.
     86                $meta_tables = array(
     87                        'notification' => $bp->table_prefix . 'bp_notifications_meta',
     88                );
     89
    8590                // All globals for the notifications component.
    8691                // Note that global_tables is included in this array.
    … …  
    9095                        'search_string' => __( 'Search Notifications...', 'buddypress' ),
    9196                        'global_tables' => $global_tables,
     97                        'meta_tables'   => $meta_tables
    9298                );
    9399
  • trunk/tests/phpunit/testcases/notifications/functions.php

    r10437 r10788  
    122122
    123123                $this->assertFalse( wp_cache_get( 'all_for_user_' . $u, 'bp_notifications' ) );
     124        }
     125
     126        /**
     127         * @group bp_notifications_update_meta_cache
     128         */
     129        public function test_bp_notifications_update_meta_cache() {
     130                $u = $this->factory->user->create();
     131
     132                $n1 = $this->factory->notification->create( array(
     133                        'component_name' => 'messages',
     134                        'user_id'        => $u
     135                ) );
     136
     137                $n2 = $this->factory->notification->create( array(
     138                        'component_name' => 'groups',
     139                        'user_id'        => $u
     140                ) );
     141
     142                // Add cache for each notification.
     143                bp_notifications_update_meta( $n1, 'meta', 'data' );
     144                bp_notifications_update_meta( $n1, 'data', 'meta' );
     145                bp_notifications_update_meta( $n2, 'meta', 'human' );
     146
     147                // Prime cache.
     148                bp_notifications_get_meta( $n1, 'meta' );
     149
     150                // Ensure an empty cache for second notification.
     151                wp_cache_delete( $n2, 'notification_meta' );
     152
     153                // Update notification meta cache.
     154                bp_notifications_update_meta_cache( array( $n1, $n2 ) );
     155
     156                $expected = array(
     157                        $n1 => array(
     158                                'meta' => array(
     159                                        'data',
     160                                ),
     161                                'data' => array(
     162                                        'meta',
     163                                ),
     164                        ),
     165                        $n2 => array(
     166                                'meta' => array(
     167                                        'human',
     168                                ),
     169                        ),
     170                );
     171
     172                $found = array(
     173                        $n1 => wp_cache_get( $n1, 'notification_meta' ),
     174                        $n2 => wp_cache_get( $n2, 'notification_meta' ),
     175                );
     176
     177                $this->assertEquals( $expected, $found );
    124178        }
    125179
Note: See TracChangeset for help on using the changeset viewer.