mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-23 03:19:01 +01:00
[feature/avatars] Fix behavior of avatar manager and variables
The $force_all variable was only partially removed and the behavior was not consistent in all files. PHPBB3-10018
This commit is contained in:
parent
8aaa3e055f
commit
fb139a8820
@ -113,7 +113,7 @@ class acp_board
|
||||
$avatar_vars = array();
|
||||
foreach ($avatar_drivers as $current_driver)
|
||||
{
|
||||
$driver = $phpbb_avatar_manager->get_driver($current_driver);
|
||||
$driver = $phpbb_avatar_manager->get_driver($current_driver, false);
|
||||
|
||||
/*
|
||||
* First grab the settings for enabling/disabling the avatar
|
||||
|
@ -522,26 +522,26 @@ class acp_groups
|
||||
$avatars_enabled = false;
|
||||
$selected_driver = $phpbb_avatar_manager->clean_driver_name($request->variable('avatar_driver', $avatar_data['avatar_type']));
|
||||
|
||||
foreach ($avatar_drivers as $driver)
|
||||
foreach ($avatar_drivers as $current_driver)
|
||||
{
|
||||
$driver = $phpbb_avatar_manager->get_driver($driver);
|
||||
$driver = $phpbb_avatar_manager->get_driver($current_driver);
|
||||
|
||||
$avatars_enabled = true;
|
||||
$config_name = preg_replace('#^avatar\.driver.#', '', $driver);
|
||||
$config_name = $phpbb_avatar_manager->get_driver_config_name($driver);
|
||||
$template->set_filenames(array(
|
||||
'avatar' => "acp_avatar_options_$config_name.html",
|
||||
));
|
||||
|
||||
if ($driver->prepare_form($template, $avatar_data, $avatar_error))
|
||||
{
|
||||
$driver_name = $phpbb_avatar_manager->prepare_driver_name($driver);
|
||||
$driver_name = $phpbb_avatar_manager->prepare_driver_name($current_driver);
|
||||
$driver_upper = strtoupper($driver_name);
|
||||
$template->assign_block_vars('avatar_drivers', array(
|
||||
'L_TITLE' => $user->lang($driver_upper . '_TITLE'),
|
||||
'L_EXPLAIN' => $user->lang($driver_upper . '_EXPLAIN'),
|
||||
|
||||
'DRIVER' => $driver_name,
|
||||
'SELECTED' => $driver == $selected_driver,
|
||||
'SELECTED' => $current_driver == $selected_driver,
|
||||
'OUTPUT' => $template->assign_display('avatar'),
|
||||
));
|
||||
}
|
||||
|
@ -47,17 +47,19 @@ class phpbb_avatar_manager
|
||||
* Get the driver object specified by the avatar type
|
||||
*
|
||||
* @param string $avatar_type Avatar type; by default an avatar's service container name
|
||||
* @param bool $force_all Grab all avatar drivers, no matter if enabled or not
|
||||
* @param bool $load_valid Load only valid avatars
|
||||
*
|
||||
* @return object Avatar driver object
|
||||
*/
|
||||
public function get_driver($avatar_type, $force_all = false)
|
||||
public function get_driver($avatar_type, $load_valid = true)
|
||||
{
|
||||
if (self::$valid_drivers === false || $force_all)
|
||||
if (self::$valid_drivers === false)
|
||||
{
|
||||
$this->load_valid_drivers($force_all);
|
||||
$this->load_valid_drivers();
|
||||
}
|
||||
|
||||
$avatar_drivers = ($load_valid) ? self::$valid_drivers : $this->get_all_drivers();
|
||||
|
||||
// Legacy stuff...
|
||||
switch ($avatar_type)
|
||||
{
|
||||
@ -72,7 +74,7 @@ class phpbb_avatar_manager
|
||||
break;
|
||||
}
|
||||
|
||||
if (!isset(self::$valid_drivers[$avatar_type]))
|
||||
if (!isset($avatar_drivers[$avatar_type]))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@ -89,17 +91,15 @@ class phpbb_avatar_manager
|
||||
/**
|
||||
* Load the list of valid drivers
|
||||
* This is executed once and fills self::$valid_drivers
|
||||
*
|
||||
* @param bool $force_all Force showing all avatar drivers
|
||||
*/
|
||||
protected function load_valid_drivers($force_all = false)
|
||||
protected function load_valid_drivers()
|
||||
{
|
||||
if (!empty($this->avatar_drivers))
|
||||
{
|
||||
self::$valid_drivers = array();
|
||||
foreach ($this->avatar_drivers as $driver)
|
||||
{
|
||||
if ($force_all || $this->is_enabled($driver))
|
||||
if ($this->is_enabled($driver))
|
||||
{
|
||||
self::$valid_drivers[$driver->get_name()] = $driver->get_name();
|
||||
}
|
||||
@ -138,7 +138,7 @@ class phpbb_avatar_manager
|
||||
{
|
||||
if (self::$valid_drivers === false)
|
||||
{
|
||||
$this->load_valid_drivers($force_all);
|
||||
$this->load_valid_drivers();
|
||||
}
|
||||
|
||||
return self::$valid_drivers;
|
||||
|
@ -38,10 +38,13 @@ class phpbb_avatar_manager_test extends PHPUnit_Framework_TestCase
|
||||
|
||||
public function test_get_driver()
|
||||
{
|
||||
$driver = $this->manager->get_driver('avatar.driver.foobar', true);
|
||||
$driver = $this->manager->get_driver('avatar.driver.foobar', false);
|
||||
$this->assertEquals('avatar.driver.foobar', $driver);
|
||||
|
||||
$driver = $this->manager->get_driver('avatar.driver.foo_wrong', true);
|
||||
$driver = $this->manager->get_driver('avatar.driver.foo_wrong', false);
|
||||
$this->assertNull($driver);
|
||||
|
||||
$driver = $this->manager->get_driver('avatar.driver.foobar');
|
||||
$this->assertNull($driver);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user