[ticket/9492] Fix undefined user_avatar_* values when updating the group avatar

PHPBB3-9492
This commit is contained in:
Joas Schilling 2013-01-17 14:40:58 +01:00
parent 50542a389c
commit 64c27013d4

View file

@ -3525,25 +3525,31 @@ function group_set_user_default($group_id, $user_id_ary, $group_attributes = fal
} }
// Before we update the user attributes, we will update the avatar for users that don't have a custom avatar // Before we update the user attributes, we will update the avatar for users that don't have a custom avatar
$avatar_options = array('user_avatar', 'user_avatar_type', 'user_avatar_height', 'user_avatar_width');
if (isset($sql_ary['user_avatar'])) if (isset($sql_ary['user_avatar']))
{ {
$avatar_sql_ary = array();
foreach ($avatar_options as $avatar_option)
{
if (isset($sql_ary[$avatar_option]))
{
$avatar_sql_ary[$avatar_option] = $sql_ary[$avatar_option];
}
}
$sql = 'UPDATE ' . USERS_TABLE . ' $sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', array( SSET ' . $db->sql_build_array('UPDATE', $avatar_sql_ary) . "
'user_avatar' => $sql_ary['user_avatar'],
'user_avatar_type' => $sql_ary['user_avatar_type'],
'user_avatar_height' => $sql_ary['user_avatar_height'],
'user_avatar_width' => $sql_ary['user_avatar_width'],
)) . "
WHERE user_avatar = '' WHERE user_avatar = ''
AND " . $db->sql_in_set('user_id', $user_id_ary); AND " . $db->sql_in_set('user_id', $user_id_ary);
$db->sql_query($sql); $db->sql_query($sql);
unset($sql_ary['user_avatar']);
} }
unset($sql_ary['user_avatar_type']); // Remove the avatar options, as we already updated them
unset($sql_ary['user_avatar_height']); foreach ($avatar_options as $avatar_option)
unset($sql_ary['user_avatar_width']); {
unset($sql_ary[$avatar_option]);
}
if (!empty($sql_ary)) if (!empty($sql_ary))
{ {