diff options
Diffstat (limited to 'phpBB/includes/avatar/manager.php')
| -rw-r--r-- | phpBB/includes/avatar/manager.php | 309 | 
1 files changed, 0 insertions, 309 deletions
| diff --git a/phpBB/includes/avatar/manager.php b/phpBB/includes/avatar/manager.php deleted file mode 100644 index 58d994c3c0..0000000000 --- a/phpBB/includes/avatar/manager.php +++ /dev/null @@ -1,309 +0,0 @@ -<?php -/** -* -* @package phpBB3 -* @copyright (c) 2011 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ -	exit; -} - -/** -* @package avatar -*/ -class phpbb_avatar_manager -{ -	/** -	* phpBB configuration -	* @var phpbb_config -	*/ -	protected $config; - -	/** -	* Array that contains a list of enabled drivers -	* @var array -	*/ -	static protected $enabled_drivers = false; - -	/** -	* Array that contains all available avatar drivers which are passed via the -	* service container -	* @var array -	*/ -	protected $avatar_drivers; - -	/** -	* Service container object -	* @var object -	*/ -	protected $container; - -	/** -	* Default avatar data row -	* @var array -	*/ -	static protected $default_row = array( -		'avatar'		=> '', -		'avatar_type'	=> '', -		'avatar_width'	=> '', -		'avatar_height'	=> '', -	); - -	/** -	* Construct an avatar manager object -	* -	* @param phpbb_config $config phpBB configuration -	* @param array $avatar_drivers Avatar drivers passed via the service container -	* @param object $container Container object -	*/ -	public function __construct(phpbb_config $config, $avatar_drivers, $container) -	{ -		$this->config = $config; -		$this->avatar_drivers = $avatar_drivers; -		$this->container = $container; -	} - -	/** -	* 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 $load_enabled Load only enabled avatars -	* -	* @return object Avatar driver object -	*/ -	public function get_driver($avatar_type, $load_enabled = true) -	{ -		if (self::$enabled_drivers === false) -		{ -			$this->load_enabled_drivers(); -		} - -		$avatar_drivers = ($load_enabled) ? self::$enabled_drivers : $this->get_all_drivers(); - -		// Legacy stuff... -		switch ($avatar_type) -		{ -			case AVATAR_GALLERY: -				$avatar_type = 'avatar.driver.local'; -			break; -			case AVATAR_UPLOAD: -				$avatar_type = 'avatar.driver.upload'; -			break; -			case AVATAR_REMOTE: -				$avatar_type = 'avatar.driver.remote'; -			break; -		} - -		if (!isset($avatar_drivers[$avatar_type])) -		{ -			return null; -		} - -		/* -		* There is no need to handle invalid avatar types as the following code -		* will cause a ServiceNotFoundException if the type does not exist -		*/ -		$driver = $this->container->get($avatar_type); - -		return $driver; -	} - -	/** -	* Load the list of enabled drivers -	* This is executed once and fills self::$enabled_drivers -	*/ -	protected function load_enabled_drivers() -	{ -		if (!empty($this->avatar_drivers)) -		{ -			self::$enabled_drivers = array(); -			foreach ($this->avatar_drivers as $driver) -			{ -				if ($this->is_enabled($driver)) -				{ -					self::$enabled_drivers[$driver->get_name()] = $driver->get_name(); -				} -			} -			asort(self::$enabled_drivers); -		} -	} - -	/** -	* Get a list of all avatar drivers -	* -	* As this function will only be called in the ACP avatar settings page, it -	* doesn't make much sense to cache the list of all avatar drivers like the -	* list of the enabled drivers. -	* -	* @return array Array containing a list of all avatar drivers -	*/ -	public function get_all_drivers() -	{ -		$drivers = array(); - -		if (!empty($this->avatar_drivers)) -		{ -			foreach ($this->avatar_drivers as $driver) -			{ -				$drivers[$driver->get_name()] = $driver->get_name(); -			} -			asort($drivers); -		} - -		return $drivers; -	} - -	/** -	* Get a list of enabled avatar drivers -	* -	* @return array Array containing a list of the enabled avatar drivers -	*/ -	public function get_enabled_drivers() -	{ -		if (self::$enabled_drivers === false) -		{ -			$this->load_enabled_drivers(); -		} - -		return self::$enabled_drivers; -	} - -	/** -	* Strip out user_ and group_ prefixes from keys -	* -	* @param array	$row User data or group data -	* -	* @return array User data or group data with keys that have been -	*        stripped from the preceding "user_" or "group_" -	*/ -	static public function clean_row($row) -	{ -		// Upon creation of a user/group $row might be empty -		if (empty($row)) -		{ -			return self::$default_row; -		} - -		$keys = array_keys($row); -		$values = array_values($row); - -		$keys = array_map(array('phpbb_avatar_manager', 'strip_prefix'), $keys); - -		return array_combine($keys, $values); -	} - -	/** -	* Strip prepending user_ or group_ prefix from key -	* -	* @param string Array key -	* @return string Key that has been stripped from its prefix -	*/ -	static protected function strip_prefix($key) -	{ -		return preg_replace('#^(?:user_|group_)#', '', $key); -	} - -	/** -	* Clean driver names that are returned from template files -	* Underscores are replaced with dots -	* -	* @param string $name Driver name -	* -	* @return string Cleaned driver name -	*/ -	static public function clean_driver_name($name) -	{ -		return str_replace('_', '.', $name); -	} - -	/** -	* Prepare driver names for use in template files -	* Dots are replaced with underscores -	* -	* @param string $name Clean driver name -	* -	* @return string Prepared driver name -	*/ -	static public function prepare_driver_name($name) -	{ -		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 = $this->get_driver_config_name($driver); - -		return $this->config["allow_avatar_{$config_name}"]; -	} - -	/** -	* Get the settings array for enabling/disabling an avatar driver -	* -	* @param object $driver Avatar driver object -	* -	* @return array Array of configuration options as consumed by acp_board -	*/ -	public function get_avatar_settings($driver) -	{ -		$config_name = $this->get_driver_config_name($driver); - -		return array( -			'allow_avatar_' . $config_name	=> array('lang' => 'ALLOW_' . strtoupper($config_name),		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -		); -	} - -	/** -	* Get the config name of an avatar driver -	* -	* @param object $driver Avatar driver object -	* -	* @return string Avatar driver config name -	*/ -	public function get_driver_config_name($driver) -	{ -		return preg_replace('#^phpbb_avatar_driver_#', '', get_class($driver)); -	} - -	/** -	* Replace "error" strings with their real, localized form -	* -	* @param phpbb_user phpBB User object -	* @param array	$error Array containing error strings -	*        Key values can either be a string with a language key or an array -	*        that will be passed to vsprintf() with the language key in the -	*        first array key. -	* -	* @return array Array containing the localized error strings -	*/ -	public function localize_errors(phpbb_user $user, $error) -	{ -		foreach ($error as $key => $lang) -		{ -			if (is_array($lang)) -			{ -				$lang_key = array_shift($lang); -				$error[$key] = vsprintf($user->lang($lang_key), $lang); -			} -			else -			{ -				$error[$key] = $user->lang("$lang"); -			} -		} - -		return $error; -	} -} | 
