aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2012-11-29 23:50:17 +0100
committerMarc Alexander <admin@m-a-styles.de>2012-11-30 01:07:10 +0100
commitf4ad60e2cf18771200d99bc953449d6229a74818 (patch)
treebabe3d349c9a4f68de59c069465e41920df8fb4b /phpBB
parent81a1a21185abfc230097a355216d6c6b99511b20 (diff)
downloadforums-f4ad60e2cf18771200d99bc953449d6229a74818.tar
forums-f4ad60e2cf18771200d99bc953449d6229a74818.tar.gz
forums-f4ad60e2cf18771200d99bc953449d6229a74818.tar.bz2
forums-f4ad60e2cf18771200d99bc953449d6229a74818.tar.xz
forums-f4ad60e2cf18771200d99bc953449d6229a74818.zip
[feature/avatars] Get list of enabled drivers from avatar manager
This shouldn't be done in the avatar drivers. We need to force the display all avatar drivers in the ACP or it won't be possible to enable avatars after they have been disabled. PHPBB3-10018
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/includes/acp/acp_board.php2
-rw-r--r--phpBB/includes/acp/acp_groups.php35
-rw-r--r--phpBB/includes/acp/acp_users.php35
-rw-r--r--phpBB/includes/avatar/driver/driver.php10
-rw-r--r--phpBB/includes/avatar/driver/interface.php7
-rw-r--r--phpBB/includes/avatar/manager.php29
-rw-r--r--phpBB/includes/ucp/ucp_groups.php33
-rw-r--r--phpBB/includes/ucp/ucp_profile.php33
8 files changed, 88 insertions, 96 deletions
diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php
index 95da62dedf..c3bdf89866 100644
--- a/phpBB/includes/acp/acp_board.php
+++ b/phpBB/includes/acp/acp_board.php
@@ -108,7 +108,7 @@ class acp_board
case 'avatar':
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
- $avatar_drivers = $phpbb_avatar_manager->get_valid_drivers();
+ $avatar_drivers = $phpbb_avatar_manager->get_valid_drivers(true);
sort($avatar_drivers);
$avatar_vars = array();
foreach ($avatar_drivers as $driver)
diff --git a/phpBB/includes/acp/acp_groups.php b/phpBB/includes/acp/acp_groups.php
index 19006df306..a15a1b9a78 100644
--- a/phpBB/includes/acp/acp_groups.php
+++ b/phpBB/includes/acp/acp_groups.php
@@ -528,27 +528,24 @@ class acp_groups
{
$avatar = $phpbb_avatar_manager->get_driver($driver);
- if ($avatar->is_enabled())
+ $avatars_enabled = true;
+ $config_name = preg_replace('#^avatar\.driver.#', '', $driver);
+ $template->set_filenames(array(
+ 'avatar' => "acp_avatar_options_$config_name.html",
+ ));
+
+ if ($avatar->prepare_form($template, $avatar_data, $avatar_error))
{
- $avatars_enabled = true;
- $config_name = preg_replace('#^avatar\.driver.#', '', $driver);
- $template->set_filenames(array(
- 'avatar' => "acp_avatar_options_$config_name.html",
+ $driver_name = $phpbb_avatar_manager->prepare_driver_name($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 == $focused_driver,
+ 'OUTPUT' => $template->assign_display('avatar'),
));
-
- if ($avatar->prepare_form($template, $avatar_data, $avatar_error))
- {
- $driver_name = $phpbb_avatar_manager->prepare_driver_name($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 == $focused_driver,
- 'OUTPUT' => $template->assign_display('avatar'),
- ));
- }
}
}
}
diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php
index e0dcea6d58..d5532e35b6 100644
--- a/phpBB/includes/acp/acp_users.php
+++ b/phpBB/includes/acp/acp_users.php
@@ -1809,28 +1809,25 @@ class acp_users
{
$avatar = $phpbb_avatar_manager->get_driver($driver);
- if ($avatar->is_enabled())
- {
- $avatars_enabled = true;
- $config_name = preg_replace('#^avatar\.driver.#', '', $driver);
- $template->set_filenames(array(
- 'avatar' => "acp_avatar_options_$config_name.html",
- ));
+ $avatars_enabled = true;
+ $config_name = preg_replace('#^avatar\.driver.#', '', $driver);
+ $template->set_filenames(array(
+ 'avatar' => "acp_avatar_options_$config_name.html",
+ ));
- if ($avatar->prepare_form($template, $avatar_data, $error))
- {
- $driver_name = $phpbb_avatar_manager->prepare_driver_name($driver);
- $driver_upper = strtoupper($driver_name);
+ if ($avatar->prepare_form($template, $avatar_data, $error))
+ {
+ $driver_name = $phpbb_avatar_manager->prepare_driver_name($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'),
+ $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 == $focused_driver,
- 'OUTPUT' => $template->assign_display('avatar'),
- ));
- }
+ 'DRIVER' => $driver_name,
+ 'SELECTED' => $driver == $focused_driver,
+ 'OUTPUT' => $template->assign_display('avatar'),
+ ));
}
}
}
diff --git a/phpBB/includes/avatar/driver/driver.php b/phpBB/includes/avatar/driver/driver.php
index 6710f1f153..cde4fd95a6 100644
--- a/phpBB/includes/avatar/driver/driver.php
+++ b/phpBB/includes/avatar/driver/driver.php
@@ -130,16 +130,6 @@ abstract class phpbb_avatar_driver implements phpbb_avatar_driver_interface
/**
* @inheritdoc
*/
- public function is_enabled()
- {
- $driver = preg_replace('#^phpbb_avatar_driver_#', '', get_class($this));
-
- return $this->config["allow_avatar_$driver"];
- }
-
- /**
- * @inheritdoc
- */
public function get_template_name()
{
$driver = preg_replace('#^phpbb_avatar_driver_#', '', get_class($this));
diff --git a/phpBB/includes/avatar/driver/interface.php b/phpBB/includes/avatar/driver/interface.php
index d2f25a989f..7a58a40b0c 100644
--- a/phpBB/includes/avatar/driver/interface.php
+++ b/phpBB/includes/avatar/driver/interface.php
@@ -92,13 +92,6 @@ interface phpbb_avatar_driver_interface
public function delete($row);
/**
- * Check if avatar is enabled
- *
- * @return bool True if avatar is enabled, false if it's disabled
- */
- public function is_enabled();
-
- /**
* Get the avatars template name
*
* @return string Avatar's template name
diff --git a/phpBB/includes/avatar/manager.php b/phpBB/includes/avatar/manager.php
index ae628f0ce2..8953557acb 100644
--- a/phpBB/includes/avatar/manager.php
+++ b/phpBB/includes/avatar/manager.php
@@ -101,15 +101,20 @@ 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()
+ protected function load_valid_drivers($force_all = false)
{
if (!empty($this->avatar_drivers))
{
self::$valid_drivers = array();
foreach ($this->avatar_drivers as $driver)
{
- self::$valid_drivers[$driver->get_name()] = $driver->get_name();
+ if ($force_all || $this->is_enabled($driver))
+ {
+ self::$valid_drivers[$driver->get_name()] = $driver->get_name();
+ }
}
}
}
@@ -117,13 +122,15 @@ class phpbb_avatar_manager
/**
* Get a list of valid avatar drivers
*
+ * @param bool $force_all Force showing all avatar drivers
+ *
* @return array Array containing a list of the valid avatar drivers
*/
- public function get_valid_drivers()
+ public function get_valid_drivers($force_all = false)
{
if (self::$valid_drivers === false)
{
- $this->load_valid_drivers();
+ $this->load_valid_drivers($force_all);
}
return self::$valid_drivers;
@@ -178,4 +185,18 @@ class phpbb_avatar_manager
{
return str_replace('.', '_', $name);
}
+
+ /**
+ * Check if avatar is enabled
+ *
+ * @param object $driver Avatar driver object
+ *
+ * @return bool True if avatar is enabled, false if it's disabled
+ */
+ public function is_enabled($driver)
+ {
+ $config_name = preg_replace('#^phpbb_avatar_driver_#', '', get_class($driver));
+
+ return $this->config["allow_avatar_{$config_name}"];
+ }
}
diff --git a/phpBB/includes/ucp/ucp_groups.php b/phpBB/includes/ucp/ucp_groups.php
index 3860d22917..f17e535b0c 100644
--- a/phpBB/includes/ucp/ucp_groups.php
+++ b/phpBB/includes/ucp/ucp_groups.php
@@ -653,26 +653,23 @@ class ucp_groups
{
$avatar = $phpbb_avatar_manager->get_driver($driver);
- if ($avatar->is_enabled())
+ $avatars_enabled = true;
+ $template->set_filenames(array(
+ 'avatar' => $avatar->get_template_name(),
+ ));
+
+ if ($avatar->prepare_form($template, $avatar_data, $avatar_error))
{
- $avatars_enabled = true;
- $template->set_filenames(array(
- 'avatar' => $avatar->get_template_name(),
+ $driver_name = $phpbb_avatar_manager->prepare_driver_name($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 == $focused_driver,
+ 'OUTPUT' => $template->assign_display('avatar'),
));
-
- if ($avatar->prepare_form($template, $avatar_data, $avatar_error))
- {
- $driver_name = $phpbb_avatar_manager->prepare_driver_name($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 == $focused_driver,
- 'OUTPUT' => $template->assign_display('avatar'),
- ));
- }
}
}
}
diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php
index c8547e48d8..f5c04bb432 100644
--- a/phpBB/includes/ucp/ucp_profile.php
+++ b/phpBB/includes/ucp/ucp_profile.php
@@ -633,27 +633,24 @@ class ucp_profile
{
$avatar = $phpbb_avatar_manager->get_driver($driver);
- if ($avatar->is_enabled())
- {
- $avatars_enabled = true;
- $template->set_filenames(array(
- 'avatar' => $avatar->get_template_name(),
- ));
+ $avatars_enabled = true;
+ $template->set_filenames(array(
+ 'avatar' => $avatar->get_template_name(),
+ ));
- if ($avatar->prepare_form($template, $avatar_data, $error))
- {
- $driver_name = $phpbb_avatar_manager->prepare_driver_name($driver);
- $driver_upper = strtoupper($driver_name);
+ if ($avatar->prepare_form($template, $avatar_data, $error))
+ {
+ $driver_name = $phpbb_avatar_manager->prepare_driver_name($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'),
+ $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 == $focused_driver,
- 'OUTPUT' => $template->assign_display('avatar'),
- ));
- }
+ 'DRIVER' => $driver_name,
+ 'SELECTED' => $driver == $focused_driver,
+ 'OUTPUT' => $template->assign_display('avatar'),
+ ));
}
}
}