aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2012-11-30 23:11:44 +0100
committerMarc Alexander <admin@m-a-styles.de>2012-11-30 23:11:44 +0100
commit081440f6c4bd6b7c2838dd0587ed6a4dffc87d52 (patch)
tree72c9d739430466e5ac1e81db930a89d503ff5772 /phpBB/includes
parent33b98dc5ba0b690fdae72acfd676dae5a897cb6a (diff)
downloadforums-081440f6c4bd6b7c2838dd0587ed6a4dffc87d52.tar
forums-081440f6c4bd6b7c2838dd0587ed6a4dffc87d52.tar.gz
forums-081440f6c4bd6b7c2838dd0587ed6a4dffc87d52.tar.bz2
forums-081440f6c4bd6b7c2838dd0587ed6a4dffc87d52.tar.xz
forums-081440f6c4bd6b7c2838dd0587ed6a4dffc87d52.zip
[feature/avatars] Create setting for enabling avatar in manager
PHPBB3-10018
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/acp/acp_board.php13
-rw-r--r--phpBB/includes/avatar/driver/driver.php28
-rw-r--r--phpBB/includes/avatar/driver/gravatar.php10
-rw-r--r--phpBB/includes/avatar/driver/local.php1
-rw-r--r--phpBB/includes/avatar/driver/remote.php10
-rw-r--r--phpBB/includes/avatar/driver/upload.php22
-rw-r--r--phpBB/includes/avatar/manager.php16
7 files changed, 31 insertions, 69 deletions
diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php
index 0467cc7c35..bb90918a46 100644
--- a/phpBB/includes/acp/acp_board.php
+++ b/phpBB/includes/acp/acp_board.php
@@ -111,10 +111,17 @@ class acp_board
$avatar_drivers = $phpbb_avatar_manager->get_valid_drivers(true);
$avatar_vars = array();
- foreach ($avatar_drivers as $driver)
+ foreach ($avatar_drivers as $current_driver)
{
- $avatar = $phpbb_avatar_manager->get_driver($driver);
- $avatar_vars += $avatar->prepare_form_acp();
+ $driver = $phpbb_avatar_manager->get_driver($current_driver);
+
+ /*
+ * First grab the settings for enabling/disabling the avatar
+ * driver and afterwards grab additional settings the driver
+ * might have.
+ */
+ $avatar_vars += $phpbb_avatar_manager->get_avatar_settings($driver);
+ $avatar_vars += $driver->prepare_form_acp();
}
$display_vars = array(
diff --git a/phpBB/includes/avatar/driver/driver.php b/phpBB/includes/avatar/driver/driver.php
index 317fe91b83..ab89cfbffe 100644
--- a/phpBB/includes/avatar/driver/driver.php
+++ b/phpBB/includes/avatar/driver/driver.php
@@ -78,18 +78,6 @@ abstract class phpbb_avatar_driver implements phpbb_avatar_driver_interface
/**
* @inheritdoc
*/
- public function get_data($row)
- {
- return array(
- 'src' => '',
- 'width' => 0,
- 'height' => 0,
- );
- }
-
- /**
- * @inheritdoc
- */
public function get_custom_html($row, $alt = '')
{
return '';
@@ -98,14 +86,6 @@ abstract class phpbb_avatar_driver implements phpbb_avatar_driver_interface
/**
* @inheritdoc
*/
- public function prepare_form($template, $row, &$error)
- {
- return false;
- }
-
- /**
- * @inheritdoc
- */
public function prepare_form_acp()
{
return array();
@@ -114,14 +94,6 @@ abstract class phpbb_avatar_driver implements phpbb_avatar_driver_interface
/**
* @inheritdoc
*/
- public function process_form($template, $row, &$error)
- {
- return false;
- }
-
- /**
- * @inheritdoc
- */
public function delete($row)
{
return true;
diff --git a/phpBB/includes/avatar/driver/gravatar.php b/phpBB/includes/avatar/driver/gravatar.php
index 001a741c3f..8fa95bf937 100644
--- a/phpBB/includes/avatar/driver/gravatar.php
+++ b/phpBB/includes/avatar/driver/gravatar.php
@@ -66,16 +66,6 @@ class phpbb_avatar_driver_gravatar extends phpbb_avatar_driver
/**
* @inheritdoc
*/
- public function prepare_form_acp()
- {
- return array(
- 'allow_avatar_gravatar' => array('lang' => 'ALLOW_GRAVATAR', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
- );
- }
-
- /**
- * @inheritdoc
- */
public function process_form($template, $row, &$error)
{
$row['avatar'] = $this->request->variable('avatar_gravatar_email', '');
diff --git a/phpBB/includes/avatar/driver/local.php b/phpBB/includes/avatar/driver/local.php
index 479ee3712a..4593161a76 100644
--- a/phpBB/includes/avatar/driver/local.php
+++ b/phpBB/includes/avatar/driver/local.php
@@ -107,7 +107,6 @@ class phpbb_avatar_driver_local extends phpbb_avatar_driver
public function prepare_form_acp()
{
return array(
- 'allow_avatar_local' => array('lang' => 'ALLOW_LOCAL', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
'avatar_gallery_path' => array('lang' => 'AVATAR_GALLERY_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true),
);
}
diff --git a/phpBB/includes/avatar/driver/remote.php b/phpBB/includes/avatar/driver/remote.php
index 344275a251..e96cb35684 100644
--- a/phpBB/includes/avatar/driver/remote.php
+++ b/phpBB/includes/avatar/driver/remote.php
@@ -50,16 +50,6 @@ class phpbb_avatar_driver_remote extends phpbb_avatar_driver
/**
* @inheritdoc
*/
- public function prepare_form_acp()
- {
- return array(
- 'allow_avatar_remote' => array('lang' => 'ALLOW_REMOTE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
- );
- }
-
- /**
- * @inheritdoc
- */
public function process_form($template, $row, &$error)
{
$url = $this->request->variable('avatar_remote_url', '');
diff --git a/phpBB/includes/avatar/driver/upload.php b/phpBB/includes/avatar/driver/upload.php
index 497dd8ad19..38627baacf 100644
--- a/phpBB/includes/avatar/driver/upload.php
+++ b/phpBB/includes/avatar/driver/upload.php
@@ -26,22 +26,11 @@ class phpbb_avatar_driver_upload extends phpbb_avatar_driver
*/
public function get_data($row, $ignore_config = false)
{
- if ($ignore_config || $this->config['allow_avatar_upload'])
- {
- return array(
- 'src' => $this->phpbb_root_path . 'download/file' . $this->php_ext . '?avatar=' . $row['avatar'],
- 'width' => $row['avatar_width'],
- 'height' => $row['avatar_height'],
- );
- }
- else
- {
- return array(
- 'src' => '',
- 'width' => 0,
- 'height' => 0,
- );
- }
+ return array(
+ 'src' => $this->phpbb_root_path . 'download/file' . $this->php_ext . '?avatar=' . $row['avatar'],
+ 'width' => $row['avatar_width'],
+ 'height' => $row['avatar_height'],
+ );
}
/**
@@ -133,7 +122,6 @@ class phpbb_avatar_driver_upload extends phpbb_avatar_driver
global $user;
return array(
- 'allow_avatar_upload' => array('lang' => 'ALLOW_UPLOAD', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
'allow_avatar_remote_upload'=> array('lang' => 'ALLOW_REMOTE_UPLOAD', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'avatar_filesize' => array('lang' => 'MAX_FILESIZE', 'validate' => 'int:0', 'type' => 'text:4:10', 'explain' => true, 'append' => ' ' . $user->lang['BYTES']),
'avatar_path' => array('lang' => 'AVATAR_STORAGE_PATH', 'validate' => 'rwpath', 'type' => 'text:20:255', 'explain' => true),
diff --git a/phpBB/includes/avatar/manager.php b/phpBB/includes/avatar/manager.php
index 176d0d659d..267ba24dc8 100644
--- a/phpBB/includes/avatar/manager.php
+++ b/phpBB/includes/avatar/manager.php
@@ -201,4 +201,20 @@ class phpbb_avatar_manager
return $this->config["allow_avatar_{$config_name}"];
}
+
+ /**
+ * Get the settings array for enabling/disabling an avatar driver
+ *
+ * @param string $driver Avatar driver object
+ *
+ * @return array Array of configuration options as consumed by acp_board
+ */
+ public function get_avatar_settings($driver)
+ {
+ $config_name = preg_replace('#^phpbb_avatar_driver_#', '', get_class($driver));
+
+ return array(
+ 'allow_avatar_' . $config_name => array('lang' => 'ALLOW_' . strtoupper($config_name), 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
+ );
+ }
}