Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
11/26/2014 06:08:03 AM (11 years ago)
Author:
r-a-y
Message:

Messages: Introduces meta table and related cache functions.

This commit alters the messages DB schema to add a meta table, which will
allow plugin developers to record information about a message.

The new message meta functions in bp-messages-functions.php mirrors those
in other BP components (activity, groups, etc.).

The DB version is also bumped to 9181.

See #3083.

File:
1 edited

Legend:

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

    r8619 r9182  
    336336    return BP_Messages_Thread::is_valid( $thread_id );
    337337}
     338
     339/** Messages Meta *******************************************************/
     340
     341/**
     342 * Delete metadata for a message.
     343 *
     344 * If $meta_key is false, this will delete all meta for the message ID.
     345 *
     346 * @since BuddyPress (2.2.0)
     347 *
     348 * @see delete_metadata() for full documentation excluding $meta_type variable.
     349 */
     350function bp_messages_delete_meta( $message_id, $meta_key = false, $meta_value = false, $delete_all = false ) {
     351    // Legacy - if no meta_key is passed, delete all for the item
     352    if ( empty( $meta_key ) ) {
     353        global $wpdb;
     354
     355        $keys = $wpdb->get_col( $wpdb->prepare( "SELECT meta_key FROM {$wpdb->messagemeta} WHERE message_id = %d", $message_id ) );
     356
     357        // With no meta_key, ignore $delete_all
     358        $delete_all = false;
     359    } else {
     360        $keys = array( $meta_key );
     361    }
     362
     363    // no keys, so stop now!
     364    if ( empty( $keys ) ) {
     365        return false;
     366    }
     367
     368    add_filter( 'query', 'bp_filter_metaid_column_name' );
     369
     370    foreach ( $keys as $key ) {
     371        $retval = delete_metadata( 'message', $message_id, $key, $meta_value, $delete_all );
     372    }
     373
     374    remove_filter( 'query', 'bp_filter_metaid_column_name' );
     375
     376    return $retval;
     377}
     378
     379/**
     380 * Get a piece of message metadata.
     381 *
     382 * @since BuddyPress (2.2.0)
     383 *
     384 * @see get_metadata() for full documentation excluding $meta_type variable.
     385 */
     386function bp_messages_get_meta( $message_id, $meta_key = '', $single = true ) {
     387    add_filter( 'query', 'bp_filter_metaid_column_name' );
     388    $retval = get_metadata( 'message', $message_id, $meta_key, $single );
     389    remove_filter( 'query', 'bp_filter_metaid_column_name' );
     390
     391    return $retval;
     392}
     393
     394/**
     395 * Update a piece of message metadata.
     396 *
     397 * @since BuddyPress (2.2.0)
     398 *
     399 * @see update_metadata() for full documentation excluding $meta_type variable.
     400 */
     401function bp_messages_update_meta( $message_id, $meta_key, $meta_value, $prev_value = '' ) {
     402    add_filter( 'query', 'bp_filter_metaid_column_name' );
     403    $retval = update_metadata( 'message', $message_id, $meta_key, $meta_value, $prev_value );
     404    remove_filter( 'query', 'bp_filter_metaid_column_name' );
     405
     406    return $retval;
     407}
     408
     409/**
     410 * Add a piece of message metadata.
     411 *
     412 * @since BuddyPress (2.2.0)
     413 *
     414 * @see add_metadata() for full documentation excluding $meta_type variable.
     415 */
     416function bp_message_add_meta( $message_id, $meta_key, $meta_value, $unique = false ) {
     417    add_filter( 'query', 'bp_filter_metaid_column_name' );
     418    $retval = add_metadata( 'message', $message_id, $meta_key, $meta_value, $unique );
     419    remove_filter( 'query', 'bp_filter_metaid_column_name' );
     420
     421    return $retval;
     422}
Note: See TracChangeset for help on using the changeset viewer.