diff options
| -rw-r--r-- | phpBB/includes/acp/acp_board.php | 13 | ||||
| -rw-r--r-- | phpBB/includes/avatar/driver/driver.php | 28 | ||||
| -rw-r--r-- | phpBB/includes/avatar/driver/gravatar.php | 10 | ||||
| -rw-r--r-- | phpBB/includes/avatar/driver/local.php | 1 | ||||
| -rw-r--r-- | phpBB/includes/avatar/driver/remote.php | 10 | ||||
| -rw-r--r-- | phpBB/includes/avatar/driver/upload.php | 22 | ||||
| -rw-r--r-- | phpBB/includes/avatar/manager.php | 16 | 
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), +		); +	}  }  | 
