[feature/avatars] Add static methods for handling driver names

PHPBB3-10018
This commit is contained in:
Marc Alexander 2012-11-25 16:04:59 +01:00
parent 6d061304af
commit 06639729ea
5 changed files with 38 additions and 12 deletions

View file

@ -334,7 +334,7 @@ class acp_groups
if ($config['allow_avatar']) if ($config['allow_avatar'])
{ {
// Handle avatar // Handle avatar
$driver = str_replace('_', '.', request_var('avatar_driver', '')); $driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', ''));
$config_name = preg_replace('#^avatar\.driver.#', '', $driver); $config_name = preg_replace('#^avatar\.driver.#', '', $driver);
$avatar_delete = $request->variable('avatar_delete', ''); $avatar_delete = $request->variable('avatar_delete', '');
@ -523,7 +523,7 @@ class acp_groups
if ($config['allow_avatar']) if ($config['allow_avatar'])
{ {
$avatars_enabled = false; $avatars_enabled = false;
$focused_driver = str_replace('_', '.', request_var('avatar_driver', $avatar_data['avatar_type'])); $focused_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $avatar_data['avatar_type']));
foreach ($avatar_drivers as $driver) foreach ($avatar_drivers as $driver)
{ {
@ -539,7 +539,7 @@ class acp_groups
if ($avatar->prepare_form($template, $avatar_data, $avatar_error)) if ($avatar->prepare_form($template, $avatar_data, $avatar_error))
{ {
$driver_name = str_replace('.', '_', $driver); $driver_name = $phpbb_avatar_manager->prepare_driver_name($driver);
$driver_upper = strtoupper($driver_name); $driver_upper = strtoupper($driver_name);
$template->assign_block_vars('avatar_drivers', array( $template->assign_block_vars('avatar_drivers', array(
'L_TITLE' => $user->lang($driver_upper . '_TITLE'), 'L_TITLE' => $user->lang($driver_upper . '_TITLE'),

View file

@ -1747,7 +1747,7 @@ class acp_users
{ {
if (check_form_key($form_name)) if (check_form_key($form_name))
{ {
$driver = str_replace('_', '.', request_var('avatar_driver', '')); $driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', ''));
$config_name = preg_replace('#^avatar\.driver.#', '', $driver); $config_name = preg_replace('#^avatar\.driver.#', '', $driver);
$avatar_delete = $request->variable('avatar_delete', ''); $avatar_delete = $request->variable('avatar_delete', '');
if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"] && empty($avatar_delete)) if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"] && empty($avatar_delete))
@ -1803,7 +1803,7 @@ class acp_users
} }
} }
$focused_driver = str_replace('_', '.', request_var('avatar_driver', $user_row['user_avatar_type'])); $focused_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $user_row['user_avatar_type']));
foreach ($avatar_drivers as $driver) foreach ($avatar_drivers as $driver)
{ {
@ -1819,7 +1819,7 @@ class acp_users
if ($avatar->prepare_form($template, $avatar_data, $error)) if ($avatar->prepare_form($template, $avatar_data, $error))
{ {
$driver_name = str_replace('.', '_', $driver); $driver_name = $phpbb_avatar_manager->prepare_driver_name($driver);
$driver_upper = strtoupper($driver_name); $driver_upper = strtoupper($driver_name);
$template->assign_block_vars('avatar_drivers', array( $template->assign_block_vars('avatar_drivers', array(

View file

@ -152,4 +152,30 @@ class phpbb_avatar_manager
return array_combine($keys, $values); return array_combine($keys, $values);
} }
/**
* Clean driver names that are returned from template files
* Underscores are replaced with dots
*
* @param string $name Driver name
*
* @return string Cleaned driver name
*/
public static function clean_driver_name($name)
{
return str_replace('_', '.', $name);
}
/**
* Prepare driver names for use in template files
* Dots are replaced with underscores
*
* @param string $name Clean driver name
*
* @return string Prepared driver name
*/
public static function prepare_driver_name($name)
{
return str_replace('.', '_', $name);
}
} }

View file

@ -521,7 +521,7 @@ class ucp_groups
if ($config['allow_avatar']) if ($config['allow_avatar'])
{ {
// Handle avatar // Handle avatar
$driver = str_replace('_', '.', request_var('avatar_driver', '')); $driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', ''));
$config_name = preg_replace('#^avatar\.driver.#', '', $driver); $config_name = preg_replace('#^avatar\.driver.#', '', $driver);
$avatar_delete = $request->variable('avatar_delete', ''); $avatar_delete = $request->variable('avatar_delete', '');
if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"] && empty($avatar_delete)) if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"] && empty($avatar_delete))
@ -652,7 +652,7 @@ class ucp_groups
if ($config['allow_avatar']) if ($config['allow_avatar'])
{ {
$avatars_enabled = false; $avatars_enabled = false;
$focused_driver = str_replace('_', '.', request_var('avatar_driver', $avatar_data['avatar_type'])); $focused_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $avatar_data['avatar_type']));
foreach ($avatar_drivers as $driver) foreach ($avatar_drivers as $driver)
{ {
@ -667,7 +667,7 @@ class ucp_groups
if ($avatar->prepare_form($template, $avatar_data, $avatar_error)) if ($avatar->prepare_form($template, $avatar_data, $avatar_error))
{ {
$driver_name = str_replace('.', '_', $driver); $driver_name = $phpbb_avatar_manager->prepare_driver_name($driver);
$driver_upper = strtoupper($driver_name); $driver_upper = strtoupper($driver_name);
$template->assign_block_vars('avatar_drivers', array( $template->assign_block_vars('avatar_drivers', array(
'L_TITLE' => $user->lang($driver_upper . '_TITLE'), 'L_TITLE' => $user->lang($driver_upper . '_TITLE'),

View file

@ -564,7 +564,7 @@ class ucp_profile
{ {
if (check_form_key('ucp_avatar')) if (check_form_key('ucp_avatar'))
{ {
$driver = str_replace('_', '.', request_var('avatar_driver', '')); $driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', ''));
$config_name = preg_replace('#^avatar\.driver.#', '', $driver); $config_name = preg_replace('#^avatar\.driver.#', '', $driver);
$avatar_delete = $request->variable('avatar_delete', ''); $avatar_delete = $request->variable('avatar_delete', '');
if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"] && empty($avatar_delete)) if (in_array($driver, $avatar_drivers) && $config["allow_avatar_$config_name"] && empty($avatar_delete))
@ -624,7 +624,7 @@ class ucp_profile
} }
} }
$focused_driver = str_replace('_', '.', request_var('avatar_driver', $user->data['user_avatar_type'])); $focused_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $user->data['user_avatar_type']));
foreach ($avatar_drivers as $driver) foreach ($avatar_drivers as $driver)
{ {
@ -639,7 +639,7 @@ class ucp_profile
if ($avatar->prepare_form($template, $avatar_data, $error)) if ($avatar->prepare_form($template, $avatar_data, $error))
{ {
$driver_name = str_replace('.', '_', $driver); $driver_name = $phpbb_avatar_manager->prepare_driver_name($driver);
$driver_upper = strtoupper($driver_name); $driver_upper = strtoupper($driver_name);
$template->assign_block_vars('avatar_drivers', array( $template->assign_block_vars('avatar_drivers', array(