summaryrefslogtreecommitdiffstats
path: root/wp-inst/wp-includes/pluggable-functions.php
diff options
context:
space:
mode:
authordonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-07-13 16:52:09 +0000
committerdonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-07-13 16:52:09 +0000
commit151e726b7bb00a3f46a64bb10c71011bd56dca34 (patch)
treedfea07401f0142bf57ef6ce40ae15da645e1a502 /wp-inst/wp-includes/pluggable-functions.php
parent28072f254cf1380fa6334e7adfc659d02eb9e436 (diff)
downloadwordpress-mu-151e726b7bb00a3f46a64bb10c71011bd56dca34.tar.gz
wordpress-mu-151e726b7bb00a3f46a64bb10c71011bd56dca34.tar.xz
wordpress-mu-151e726b7bb00a3f46a64bb10c71011bd56dca34.zip
Merge from WP Core, things are broken right now.
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@20 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-inst/wp-includes/pluggable-functions.php')
-rw-r--r--wp-inst/wp-includes/pluggable-functions.php35
1 files changed, 32 insertions, 3 deletions
diff --git a/wp-inst/wp-includes/pluggable-functions.php b/wp-inst/wp-includes/pluggable-functions.php
index 4d25ffd..5ca2328 100644
--- a/wp-inst/wp-includes/pluggable-functions.php
+++ b/wp-inst/wp-includes/pluggable-functions.php
@@ -31,7 +31,7 @@ function get_userdata( $user_id ) {
$user_id = (int) $user_id;
if ( $user_id == 0 )
return false;
-
+
if ( isset( $cache_userdata[$user_id] ) )
return $cache_userdata[$user_id];
@@ -52,13 +52,42 @@ function get_userdata( $user_id ) {
}
$cache_userdata[$user_id] = $user;
-
$cache_userdata[$cache_userdata[$userid]->user_login] =& $cache_userdata[$user_id];
return $cache_userdata[$user_id];
}
endif;
+if ( !function_exists('update_user_cache') ) :
+function update_user_cache() {
+ global $cache_userdata, $wpdb;
+ $level_key = $wpdb->prefix . 'user_level';
+ $user_ids = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key'");
+ $user_ids = join(',', $user_ids);
+ $query = apply_filters('user_cache_query', "SELECT * FROM $wpdb->users WHERE ID IN ($user_ids)");
+ if ( $users = $wpdb->get_results( $query ) ) :
+ foreach ($users as $user) :
+ $metavalues = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user->ID'");
+ foreach ( $metavalues as $meta ) {
+ @ $value = unserialize($meta->meta_value);
+ if ($value === FALSE)
+ $value = $meta->meta_value;
+ $user->{$meta->meta_key} = $value;
+ // We need to set user_level from meta, not row
+ if ( $wpdb->prefix . 'user_level' == $meta->meta_key )
+ $user->user_level = $meta->meta_value;
+ }
+
+ $cache_userdata[$user->ID] = $user;
+ $cache_userdata[$user->user_login] =& $cache_userdata[$user->ID];
+ endforeach;
+ return true;
+ else :
+ return false;
+ endif;
+}
+endif;
+
if ( !function_exists('get_userdatabylogin') ) :
function get_userdatabylogin($user_login) {
global $cache_userdata, $wpdb;
@@ -279,4 +308,4 @@ function wp_notify_moderator($comment_id) {
}
endif;
-?> \ No newline at end of file
+?>