1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-19 06:51:33 +02:00

[ticket/12822] Add method for deleting avatars and use confirm_box

The method will take care of the actual deletion process in the avatar manager.
Additionally, we'll be using a confirm box while deleting the avatar to prevent
users from accidentally deleting their avatars.

PHPBB3-12822
This commit is contained in:
Marc Alexander
2014-08-07 17:19:08 +02:00
parent 4f23bb711c
commit e0c2013bb9
14 changed files with 224 additions and 93 deletions

View File

@@ -53,6 +53,11 @@ class remote extends \phpbb\avatar\driver\driver
$width = $request->variable('avatar_remote_width', 0);
$height = $request->variable('avatar_remote_height', 0);
if (empty($url))
{
return false;
}
if (!preg_match('#^(http|https|ftp)://#i', $url))
{
$url = 'http://' . $url;

View File

@@ -41,8 +41,8 @@ class manager
static protected $default_row = array(
'avatar' => '',
'avatar_type' => '',
'avatar_width' => '',
'avatar_height' => '',
'avatar_width' => 0,
'avatar_height' => 0,
);
/**
@@ -307,4 +307,36 @@ class manager
return $error;
}
/**
* Handle deleting avatars
*
* @param \phpbb\db\driver\driver_interface $db phpBB dbal
* @param \phpbb\user $user phpBB user object
* @param array $avatar_data Cleaned user data containing the user's
* avatar data
* @param string $table Database table from which the avatar should be deleted
* @param string $prefix Prefix of user data columns in database
* @return null
*/
public function handle_avatar_delete(\phpbb\db\driver\driver_interface $db, \phpbb\user $user, $avatar_data, $table, $prefix)
{
if ($driver = $this->get_driver($avatar_data['avatar_type']))
{
$driver->delete($avatar_data);
}
$result = self::$default_row;
foreach ($result as $key => $value)
{
$result[$prefix . $key] = $value;
unset($result[$key]);
}
$sql = 'UPDATE ' . $table . '
SET ' . $db->sql_build_array('UPDATE', $result) . '
WHERE ' . $prefix . 'id = ' . (int) $avatar_data['id'];
$db->sql_query($sql);
}
}