diff options
author | Dhruv <dhruv.goel92@gmail.com> | 2013-12-27 00:28:38 +0530 |
---|---|---|
committer | Dhruv <dhruv.goel92@gmail.com> | 2013-12-27 00:28:38 +0530 |
commit | 80c05e861bd8b5264daf6b1f92b69b5b77356f32 (patch) | |
tree | 71bb9e0adce0c26ea2dbd58f7c4d441c1b04767f /phpBB/phpbb/avatar/manager.php | |
parent | 1bb175ce7759e937494f74769b334a9acf3779d2 (diff) | |
parent | f9c7f0fc193802fb866063c88e2d3448b6f0d010 (diff) | |
download | forums-80c05e861bd8b5264daf6b1f92b69b5b77356f32.tar forums-80c05e861bd8b5264daf6b1f92b69b5b77356f32.tar.gz forums-80c05e861bd8b5264daf6b1f92b69b5b77356f32.tar.bz2 forums-80c05e861bd8b5264daf6b1f92b69b5b77356f32.tar.xz forums-80c05e861bd8b5264daf6b1f92b69b5b77356f32.zip |
Merge branch 'develop' into ticket/11271-develop
# By Vjacheslav Trushkin (148) and others
# Via Joas Schilling (50) and others
* develop: (635 commits)
[ticket/12079] Add default value to $multibyte in request.untrimmed_variable().
[ticket/11849] Fix more function calls
[ticket/11849] Update more MCP calls to pagination class
[ticket/11849] Update some ACP modules with new pagination
[ticket/11849] Update rest of the UCP modules
[ticket/11849] Update UCP notifications and pm folder
[ticket/11849] Update search and memberlist
[ticket/11849] Update pagination in viewonline.php
[ticket/11849] Remove old pagination test
[ticket/11849] Update pagination code in viewtopic.php
[ticket/11849] Replace pagination in viewforum.php with class
[ticket/11849] Add service definition
[ticket/11849] Remove pagination functions
[ticket/11849] Test validate_start and on_page
[ticket/11849] Move pagination code to class
[ticket/12060] A little less verbose cleanup of event docblocks
[ticket/12060] Further clarifying new event docblocks as much as possible
[ticket/12060] More fixes to dockblock for acp_bbcodes_modify_create event
[ticket/12060] Remove whitespaces
[ticket/12060] Fix docblock for acp_bbcodes_modify_create event
...
Diffstat (limited to 'phpBB/phpbb/avatar/manager.php')
-rw-r--r-- | phpBB/phpbb/avatar/manager.php | 76 |
1 files changed, 37 insertions, 39 deletions
diff --git a/phpBB/phpbb/avatar/manager.php b/phpBB/phpbb/avatar/manager.php index c28380a401..6ce924d2eb 100644 --- a/phpBB/phpbb/avatar/manager.php +++ b/phpBB/phpbb/avatar/manager.php @@ -10,14 +10,6 @@ namespace phpbb\avatar; /** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -/** * @package avatar */ class manager @@ -42,12 +34,6 @@ class manager protected $avatar_drivers; /** - * Service container object - * @var object - */ - protected $container; - - /** * Default avatar data row * @var array */ @@ -63,13 +49,27 @@ class manager * * @param \phpbb\config\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 $config, $avatar_drivers, $container) + public function __construct(\phpbb\config\config $config, $avatar_drivers) { $this->config = $config; - $this->avatar_drivers = $avatar_drivers; - $this->container = $container; + $this->register_avatar_drivers($avatar_drivers); + } + + /** + * Register avatar drivers + * + * @param array $avatar_drivers Service collection of avatar drivers + */ + protected function register_avatar_drivers($avatar_drivers) + { + if (!empty($avatar_drivers)) + { + foreach ($avatar_drivers as $driver) + { + $this->avatar_drivers[$driver->get_name()] = $driver; + } + } } /** @@ -112,7 +112,7 @@ class manager * 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); + $driver = $this->avatar_drivers[$avatar_type]; return $driver; } @@ -178,14 +178,16 @@ class manager } /** - * Strip out user_ and group_ prefixes from keys + * Strip out user_, group_, or other prefixes from array keys * - * @param array $row User data or group data + * @param array $row User data or group data + * @param string $prefix Prefix of data keys (e.g. user), should not include the trailing underscore * - * @return array User data or group data with keys that have been - * stripped from the preceding "user_" or "group_" + * @return array User or group data with keys that have been + * stripped from the preceding "user_" or "group_" + * Also the group id is prefixed with g, when the prefix group is removed. */ - static public function clean_row($row) + static public function clean_row($row, $prefix = '') { // Upon creation of a user/group $row might be empty if (empty($row)) @@ -193,23 +195,19 @@ class manager return self::$default_row; } - $keys = array_keys($row); - $values = array_values($row); - - $keys = array_map(array('\phpbb\avatar\manager', 'strip_prefix'), $keys); + $output = array(); + foreach ($row as $key => $value) + { + $key = preg_replace("#^(?:{$prefix}_)#", '', $key); + $output[$key] = $value; + } - return array_combine($keys, $values); - } + if ($prefix === 'group' && isset($output['id'])) + { + $output['id'] = 'g' . $output['id']; + } - /** - * 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); + return $output; } /** |