1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-14 11:35:33 +02:00

[feature/avatars] Handle deletion of avatars

Previously this wasn't handled correctly if at all.

PHPBB3-10018
This commit is contained in:
Marc Alexander 2012-11-18 23:09:09 +01:00
parent d8510356d6
commit 959bc183bf
6 changed files with 19 additions and 4 deletions

View File

@ -105,6 +105,7 @@
<dl> <dl>
<dt><label>{L_CURRENT_IMAGE}{L_COLON}</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt> <dt><label>{L_CURRENT_IMAGE}{L_COLON}</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
<dd>{AVATAR}</dd> <dd>{AVATAR}</dd>
<dd><label for="av_delete"><input type="checkbox" name="av_delete" id="av_delete" /> {L_DELETE_AVATAR}</label></dd>
</dl> </dl>
<dl> <dl>
<dt><label>{L_AVATAR_TYPE}{L_COLON}</label></dt> <dt><label>{L_AVATAR_TYPE}{L_COLON}</label></dt>

View File

@ -6,6 +6,7 @@
<dl> <dl>
<dt><label>{L_CURRENT_IMAGE}{L_COLON}</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt> <dt><label>{L_CURRENT_IMAGE}{L_COLON}</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
<dd>{AVATAR}</dd> <dd>{AVATAR}</dd>
<dd><label for="av_delete"><input type="checkbox" name="av_delete" id="av_delete" /> {L_DELETE_AVATAR}</label></dd>
</dl> </dl>
</fieldset> </fieldset>
<fieldset> <fieldset>

View File

@ -335,7 +335,8 @@ class acp_groups
// Handle avatar // Handle avatar
$driver = str_replace('_', '.', request_var('avatar_driver', '')); $driver = str_replace('_', '.', request_var('avatar_driver', ''));
$config_name = preg_replace('#^avatar.driver.#', '', $driver); $config_name = preg_replace('#^avatar.driver.#', '', $driver);
if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"]) $av_delete = $request->variable('av_delete', '');
if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"] && empty($av_delete))
{ {
$avatar = $phpbb_avatar_manager->get_driver($driver); $avatar = $phpbb_avatar_manager->get_driver($driver);
$result = $avatar->process_form($template, $avatar_data, $avatar_error); $result = $avatar->process_form($template, $avatar_data, $avatar_error);
@ -354,6 +355,11 @@ class acp_groups
} }
else else
{ {
if ($avatar = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type']))
{
$avatar->delete($avatar_data);
}
// Removing the avatar // Removing the avatar
$submit_ary['avatar_type'] = ''; $submit_ary['avatar_type'] = '';
$submit_ary['avatar'] = ''; $submit_ary['avatar'] = '';

View File

@ -1746,7 +1746,8 @@ class acp_users
{ {
$driver = str_replace('_', '.', request_var('avatar_driver', '')); $driver = str_replace('_', '.', request_var('avatar_driver', ''));
$config_name = preg_replace('#^avatar.driver.#', '', $driver); $config_name = preg_replace('#^avatar.driver.#', '', $driver);
if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"]) $av_delete = $request->variable('av_delete', '');
if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"] && empty($av_delete))
{ {
$avatar = $phpbb_avatar_manager->get_driver($driver); $avatar = $phpbb_avatar_manager->get_driver($driver);
$result = $avatar->process_form($template, $avatar_data, $error); $result = $avatar->process_form($template, $avatar_data, $error);
@ -1770,6 +1771,11 @@ class acp_users
} }
else else
{ {
if ($avatar = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type']))
{
$avatar->delete($avatar_data);
}
// Removing the avatar // Removing the avatar
$result = array( $result = array(
'user_avatar' => '', 'user_avatar' => '',

View File

@ -565,7 +565,8 @@ class ucp_profile
{ {
$driver = str_replace('_', '.', request_var('avatar_driver', '')); $driver = str_replace('_', '.', request_var('avatar_driver', ''));
$config_name = preg_replace('#^avatar.driver.#', '', $driver); $config_name = preg_replace('#^avatar.driver.#', '', $driver);
if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"]) $av_delete = $request->variable('av_delete', '');
if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"] && empty($av_delete))
{ {
$avatar = $phpbb_avatar_manager->get_driver($driver); $avatar = $phpbb_avatar_manager->get_driver($driver);
$result = $avatar->process_form($template, $avatar_data, $error); $result = $avatar->process_form($template, $avatar_data, $error);
@ -593,7 +594,6 @@ class ucp_profile
} }
else else
{ {
// They are removing their avatar or are trying to play games with us
if ($avatar = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type'])) if ($avatar = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type']))
{ {
$avatar->delete($avatar_data); $avatar->delete($avatar_data);

View File

@ -9,6 +9,7 @@
<dl> <dl>
<dt><label>{L_CURRENT_IMAGE}{L_COLON}</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt> <dt><label>{L_CURRENT_IMAGE}{L_COLON}</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
<dd><!-- IF AVATAR -->{AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF --></dd> <dd><!-- IF AVATAR -->{AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF --></dd>
<dd><label for="av_delete"><input type="checkbox" name="av_delete" id="av_delete" /> {L_DELETE_AVATAR}</label></dd>
</dl> </dl>
</fieldset> </fieldset>
<h3>{L_AVATAR_SELECT}</h3> <h3>{L_AVATAR_SELECT}</h3>