From e1fc008d15b14b383934c6a0291105377a852b53 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Thu, 17 Oct 2013 14:20:59 +0200 Subject: [ticket/11930] Use \phpbb\path_helper for avatar URLs This will ensure that avatars still properly display on extension pages supplied via app.php. PHPBB3-11930 --- phpBB/phpbb/avatar/driver/driver.php | 9 ++++++++- phpBB/phpbb/avatar/driver/local.php | 2 +- phpBB/phpbb/avatar/driver/upload.php | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) (limited to 'phpBB/phpbb/avatar') diff --git a/phpBB/phpbb/avatar/driver/driver.php b/phpBB/phpbb/avatar/driver/driver.php index 0c54951cbd..95585ab13f 100644 --- a/phpBB/phpbb/avatar/driver/driver.php +++ b/phpBB/phpbb/avatar/driver/driver.php @@ -53,6 +53,12 @@ abstract class driver implements \phpbb\avatar\driver\driver_interface */ protected $cache; + /** + * Path Helper + * @var \phpbb\path_helper + */ + protected $path_helper; + /** * Array of allowed avatar image extensions * Array is used for setting the allowed extensions in the fileupload class @@ -77,12 +83,13 @@ abstract class driver implements \phpbb\avatar\driver\driver_interface * @param string $php_ext PHP file extension * @param \phpbb\cache\driver\driver_interface $cache Cache driver */ - public function __construct(\phpbb\config\config $config, $phpbb_root_path, $php_ext, \phpbb\cache\driver\driver_interface $cache = null) + public function __construct(\phpbb\config\config $config, $phpbb_root_path, $php_ext, \phpbb\cache\driver\driver_interface $cache = null, \phpbb\path_helper $path_helper) { $this->config = $config; $this->phpbb_root_path = $phpbb_root_path; $this->php_ext = $php_ext; $this->cache = $cache; + $this->path_helper = $path_helper; } /** diff --git a/phpBB/phpbb/avatar/driver/local.php b/phpBB/phpbb/avatar/driver/local.php index d779099c46..0686ffe79a 100644 --- a/phpBB/phpbb/avatar/driver/local.php +++ b/phpBB/phpbb/avatar/driver/local.php @@ -29,7 +29,7 @@ class local extends \phpbb\avatar\driver\driver public function get_data($row) { return array( - 'src' => $this->phpbb_root_path . $this->config['avatar_gallery_path'] . '/' . $row['avatar'], + 'src' => $this->path_helper->get_web_root_path() . $this->config['avatar_gallery_path'] . '/' . $row['avatar'], 'width' => $row['avatar_width'], 'height' => $row['avatar_height'], ); diff --git a/phpBB/phpbb/avatar/driver/upload.php b/phpBB/phpbb/avatar/driver/upload.php index 377c9a0b04..bda872df7a 100644 --- a/phpBB/phpbb/avatar/driver/upload.php +++ b/phpBB/phpbb/avatar/driver/upload.php @@ -29,7 +29,7 @@ class upload extends \phpbb\avatar\driver\driver public function get_data($row, $ignore_config = false) { return array( - 'src' => $this->phpbb_root_path . 'download/file.' . $this->php_ext . '?avatar=' . $row['avatar'], + 'src' => $this->path_helper->get_web_root_path() . 'download/file.' . $this->php_ext . '?avatar=' . $row['avatar'], 'width' => $row['avatar_width'], 'height' => $row['avatar_height'], ); -- cgit v1.2.1 From d7bf50bc8073dbfe52c686066fcdd156550ab7f0 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Mon, 21 Oct 2013 10:20:12 +0200 Subject: [ticket/11930] Move path_helper in front of optional cache argument Optional method arguments should be after any mandatory ones. PHPBB3-11930 --- phpBB/phpbb/avatar/driver/driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/phpbb/avatar') diff --git a/phpBB/phpbb/avatar/driver/driver.php b/phpBB/phpbb/avatar/driver/driver.php index 95585ab13f..d682d7d114 100644 --- a/phpBB/phpbb/avatar/driver/driver.php +++ b/phpBB/phpbb/avatar/driver/driver.php @@ -83,7 +83,7 @@ abstract class driver implements \phpbb\avatar\driver\driver_interface * @param string $php_ext PHP file extension * @param \phpbb\cache\driver\driver_interface $cache Cache driver */ - public function __construct(\phpbb\config\config $config, $phpbb_root_path, $php_ext, \phpbb\cache\driver\driver_interface $cache = null, \phpbb\path_helper $path_helper) + public function __construct(\phpbb\config\config $config, $phpbb_root_path, $php_ext, \phpbb\path_helper $path_helper, \phpbb\cache\driver\driver_interface $cache = null) { $this->config = $config; $this->phpbb_root_path = $phpbb_root_path; -- cgit v1.2.1 From acbb1ed3ee4c01f4379dfdefbec40f59e427c95f Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Mon, 21 Oct 2013 10:47:40 +0200 Subject: [ticket/11930] Modify order of properties to fit constructor method PHPBB3-11930 --- phpBB/phpbb/avatar/driver/driver.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'phpBB/phpbb/avatar') diff --git a/phpBB/phpbb/avatar/driver/driver.php b/phpBB/phpbb/avatar/driver/driver.php index d682d7d114..68c30d36a5 100644 --- a/phpBB/phpbb/avatar/driver/driver.php +++ b/phpBB/phpbb/avatar/driver/driver.php @@ -47,18 +47,18 @@ abstract class driver implements \phpbb\avatar\driver\driver_interface */ protected $php_ext; - /** - * Cache driver - * @var \phpbb\cache\driver\driver_interface - */ - protected $cache; - /** * Path Helper * @var \phpbb\path_helper */ protected $path_helper; + /** + * Cache driver + * @var \phpbb\cache\driver\driver_interface + */ + protected $cache; + /** * Array of allowed avatar image extensions * Array is used for setting the allowed extensions in the fileupload class @@ -88,8 +88,8 @@ abstract class driver implements \phpbb\avatar\driver\driver_interface $this->config = $config; $this->phpbb_root_path = $phpbb_root_path; $this->php_ext = $php_ext; - $this->cache = $cache; $this->path_helper = $path_helper; + $this->cache = $cache; } /** -- cgit v1.2.1 From a80d5c93e354aa1e4dff548a89129ccd7f5488ee Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Mon, 21 Oct 2013 11:02:59 +0200 Subject: [ticket/11930] Update docblock of avatar driver constructor PHPBB3-11930 --- phpBB/phpbb/avatar/driver/driver.php | 1 + 1 file changed, 1 insertion(+) (limited to 'phpBB/phpbb/avatar') diff --git a/phpBB/phpbb/avatar/driver/driver.php b/phpBB/phpbb/avatar/driver/driver.php index 68c30d36a5..206df86543 100644 --- a/phpBB/phpbb/avatar/driver/driver.php +++ b/phpBB/phpbb/avatar/driver/driver.php @@ -81,6 +81,7 @@ abstract class driver implements \phpbb\avatar\driver\driver_interface * @param \phpbb\request\request $request Request object * @param string $phpbb_root_path Path to the phpBB root * @param string $php_ext PHP file extension + * @param \phpbb_path_helper $path_helper phpBB path helper * @param \phpbb\cache\driver\driver_interface $cache Cache driver */ public function __construct(\phpbb\config\config $config, $phpbb_root_path, $php_ext, \phpbb\path_helper $path_helper, \phpbb\cache\driver\driver_interface $cache = null) -- cgit v1.2.1 From b2f638b79359ee6df600ca940ffa2b1657235364 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Sun, 27 Oct 2013 09:52:09 +0100 Subject: [ticket/11857] Use passed service collection instead of container in manager The service collection that was already passed to the avatar manager should be used in the avatar manager method get_driver() instead of the container itself. PHPBB3-11857 --- phpBB/phpbb/avatar/manager.php | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'phpBB/phpbb/avatar') diff --git a/phpBB/phpbb/avatar/manager.php b/phpBB/phpbb/avatar/manager.php index c28380a401..7c26bce5ae 100644 --- a/phpBB/phpbb/avatar/manager.php +++ b/phpBB/phpbb/avatar/manager.php @@ -41,12 +41,6 @@ class manager */ protected $avatar_drivers; - /** - * Service container object - * @var object - */ - protected $container; - /** * Default avatar data row * @var array @@ -63,13 +57,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 +120,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; } -- cgit v1.2.1