Changeset 7870
- Timestamp:
- 02/14/2014 01:43:39 AM (11 years ago)
- Location:
- trunk/bp-blogs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-blogs/bp-blogs-functions.php
r7868 r7870 840 840 global $wpdb, $bp; 841 841 842 if ( !is_numeric( $blog_id ) ) 843 return false; 844 845 $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key); 846 847 if ( is_array($meta_value) || is_object($meta_value) ) 848 $meta_value = serialize($meta_value); 849 842 // Legacy - return false if the $blog_id is empty 843 if ( ! is_numeric( $blog_id ) ) { 844 return false; 845 } 846 847 // Legacy - sanitize meta_key 848 $meta_key = preg_replace( '|[^a-z0-9_]|i', '', $meta_key ); 849 850 // Legacy - if no meta_key is passed, delete all for the blog_id 851 if ( empty( $meta_key ) ) { 852 $keys = $wpdb->get_col( $wpdb->prepare( "SELECT meta_key FROM {$wpdb->blogmeta} WHERE blog_id = %d", $blog_id ) ); 853 } else { 854 $keys = array( $meta_key ); 855 } 856 857 // Legacy - trim meta_value 850 858 $meta_value = trim( $meta_value ); 851 859 852 if ( !$meta_key ) 853 $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->blogs->table_name_blogmeta} WHERE blog_id = %d", $blog_id ) ); 854 else if ( $meta_value ) 855 $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->blogs->table_name_blogmeta} WHERE blog_id = %d AND meta_key = %s AND meta_value = %s", $blog_id, $meta_key, $meta_value ) ); 856 else 857 $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->blogs->table_name_blogmeta} WHERE blog_id = %d AND meta_key = %s", $blog_id, $meta_key ) ); 858 859 wp_cache_delete( 'bp_blogs_blogmeta_' . $blog_id . '_' . $meta_key, 'bp' ); 860 861 return true; 860 add_filter( 'query', 'bp_filter_metaid_column_name' ); 861 862 foreach ( $keys as $key ) { 863 $retval = delete_metadata( 'blog', $blog_id, $key, $meta_value ); 864 } 865 866 remove_filter( 'query', 'bp_filter_metaid_column_name' ); 867 868 return $retval; 862 869 } 863 870 … … 877 884 */ 878 885 function bp_blogs_get_blogmeta( $blog_id, $meta_key = '') { 879 global $wpdb, $bp; 880 881 $blog_id = (int) $blog_id; 882 883 if ( !$blog_id ) 884 return false; 885 886 if ( !empty($meta_key) ) { 887 $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key); 888 889 if ( !$metas = wp_cache_get( 'bp_blogs_blogmeta_' . $blog_id . '_' . $meta_key, 'bp' ) ) { 890 $metas = $wpdb->get_col( $wpdb->prepare( "SELECT meta_value FROM {$bp->blogs->table_name_blogmeta} WHERE blog_id = %d AND meta_key = %s", $blog_id, $meta_key ) ); 891 wp_cache_set( 'bp_blogs_blogmeta_' . $blog_id . '_' . $meta_key, $metas, 'bp' ); 886 887 // Legacy - Sanitize meta_key 888 $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key); 889 890 add_filter( 'query', 'bp_filter_metaid_column_name' ); 891 $retval = get_metadata( 'blog', $blog_id, $meta_key, true ); 892 remove_filter( 'query', 'bp_filter_metaid_column_name' ); 893 894 // Legacy - If no meta_key is passed, return only the found values, 895 // not a structured array 896 if ( empty( $meta_key ) && is_array( $retval ) ) { 897 $values = array(); 898 foreach ( $retval as $value ) { 899 $values[] = array_pop( $value ); 892 900 } 893 } else { 894 $metas = $wpdb->get_col( $wpdb->prepare("SELECT meta_value FROM {$bp->blogs->table_name_blogmeta} WHERE blog_id = %d", $blog_id ) ); 895 } 896 897 if ( empty($metas) ) { 898 if ( empty($meta_key) ) 899 return array(); 900 else 901 return ''; 902 } 903 904 $metas = array_map('maybe_unserialize', (array) $metas); 905 906 if ( 1 == count($metas) ) 907 return $metas[0]; 908 else 909 return $metas; 901 $retval = $values; 902 } 903 904 return $retval; 910 905 } 911 906 … … 922 917 */ 923 918 function bp_blogs_update_blogmeta( $blog_id, $meta_key, $meta_value ) { 924 global $wpdb, $bp; 925 926 if ( !is_numeric( $blog_id ) ) 927 return false; 928 919 920 // Legacy - Sanitize meta_key 929 921 $meta_key = preg_replace( '|[^a-z0-9_]|i', '', $meta_key ); 930 922 931 if ( is_string($meta_value) ) 932 $meta_value = stripslashes( $meta_value ); 933 934 $meta_value = maybe_serialize($meta_value); 935 936 if (empty( $meta_value ) ) 937 return bp_blogs_delete_blogmeta( $blog_id, $meta_key ); 938 939 $cur = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$bp->blogs->table_name_blogmeta} WHERE blog_id = %d AND meta_key = %s", $blog_id, $meta_key ) ); 940 941 if ( !$cur ) 942 $wpdb->query( $wpdb->prepare( "INSERT INTO {$bp->blogs->table_name_blogmeta} ( blog_id, meta_key, meta_value ) VALUES ( %d, %s, %s )", $blog_id, $meta_key, $meta_value ) ); 943 else if ( $cur->meta_value != $meta_value ) 944 $wpdb->query( $wpdb->prepare( "UPDATE {$bp->blogs->table_name_blogmeta} SET meta_value = %s WHERE blog_id = %d AND meta_key = %s", $meta_value, $blog_id, $meta_key ) ); 945 else 946 return false; 947 948 wp_cache_set( 'bp_blogs_blogmeta_' . $blog_id . '_' . $meta_key, $meta_value, 'bp' ); 949 950 return true; 923 add_filter( 'query', 'bp_filter_metaid_column_name' ); 924 $retval = update_metadata( 'blog', $blog_id, $meta_key, $meta_value ); 925 remove_filter( 'query', 'bp_filter_metaid_column_name' ); 926 927 // Legacy - New items fall through to add_metadata(). Return true 928 // instead of the ID returned from that function. 929 if ( is_int( $retval ) ) { 930 $retval = true; 931 } 932 933 return $retval; 951 934 } 952 935 -
trunk/bp-blogs/bp-blogs-loader.php
r7756 r7870 53 53 'table_name' => $bp->table_prefix . 'bp_user_blogs', 54 54 'table_name_blogmeta' => $bp->table_prefix . 'bp_user_blogs_blogmeta', 55 ); 56 57 $meta_tables = array( 58 'blog' => $bp->table_prefix . 'bp_user_blogs_blogmeta', 55 59 ); 56 60 … … 65 69 'autocomplete_all' => defined( 'BP_MESSAGES_AUTOCOMPLETE_ALL' ), 66 70 'global_tables' => $global_tables, 71 'meta_tables' => $meta_tables, 67 72 ); 68 73
Note: See TracChangeset
for help on using the changeset viewer.