[feature/avatars] Create setting for enabling avatar in manager

PHPBB3-10018
This commit is contained in:
Marc Alexander 2012-11-30 23:11:44 +01:00
parent 33b98dc5ba
commit 081440f6c4
7 changed files with 31 additions and 69 deletions

View file

@ -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(

View file

@ -75,18 +75,6 @@ abstract class phpbb_avatar_driver implements phpbb_avatar_driver_interface
$this->cache = $cache;
}
/**
* @inheritdoc
*/
public function get_data($row)
{
return array(
'src' => '',
'width' => 0,
'height' => 0,
);
}
/**
* @inheritdoc
*/
@ -95,14 +83,6 @@ abstract class phpbb_avatar_driver implements phpbb_avatar_driver_interface
return '';
}
/**
* @inheritdoc
*/
public function prepare_form($template, $row, &$error)
{
return false;
}
/**
* @inheritdoc
*/
@ -111,14 +91,6 @@ abstract class phpbb_avatar_driver implements phpbb_avatar_driver_interface
return array();
}
/**
* @inheritdoc
*/
public function process_form($template, $row, &$error)
{
return false;
}
/**
* @inheritdoc
*/

View file

@ -63,16 +63,6 @@ class phpbb_avatar_driver_gravatar extends phpbb_avatar_driver
return true;
}
/**
* @inheritdoc
*/
public function prepare_form_acp()
{
return array(
'allow_avatar_gravatar' => array('lang' => 'ALLOW_GRAVATAR', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
);
}
/**
* @inheritdoc
*/

View file

@ -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),
);
}

View file

@ -47,16 +47,6 @@ class phpbb_avatar_driver_remote extends phpbb_avatar_driver
return true;
}
/**
* @inheritdoc
*/
public function prepare_form_acp()
{
return array(
'allow_avatar_remote' => array('lang' => 'ALLOW_REMOTE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
);
}
/**
* @inheritdoc
*/

View file

@ -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),

View file

@ -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),
);
}
}