aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/controller
diff options
context:
space:
mode:
authorDavid King <imkingdavid@gmail.com>2013-07-11 20:43:41 -0400
committerDavid King <imkingdavid@gmail.com>2013-07-11 20:43:41 -0400
commit8b7aef6f938bf7c08d41908e78b6e71117adba38 (patch)
treed39d9f3720e4afe78d23772e15830a2b12f1f5ba /phpBB/includes/controller
parentb9c290b5480a958eabeef66d5e9af799f77e4566 (diff)
parentb1d3c1bf6990c8105c18eb9db06ebf9c974b0899 (diff)
downloadforums-8b7aef6f938bf7c08d41908e78b6e71117adba38.tar
forums-8b7aef6f938bf7c08d41908e78b6e71117adba38.tar.gz
forums-8b7aef6f938bf7c08d41908e78b6e71117adba38.tar.bz2
forums-8b7aef6f938bf7c08d41908e78b6e71117adba38.tar.xz
forums-8b7aef6f938bf7c08d41908e78b6e71117adba38.zip
Merge branch 'develop' into ticket/11215
* develop: (176 commits) [feature/bootstrap-dic] Bootstrap container from config.php [ticket/11548] Use new static methods for request and submit [ticket/10772] Updating tests [ticket/10772] Remove 3.1 code [ticket/11388] Add newlines at EOF [ticket/11388] INCLUDECSS [ticket/11548] Run array_map on complete error array and not just colour_error [ticket/11644] Skip phpbb_dbal_order_lower_test on MySQL 5.6 [ticket/11388] Do not append assets_version if using remote path (e.g. http) [ticket/11388] Fix typo [ticket/11388] Remove typehints (causing tests to fail) [ticket/11388] Disable cache if IN_INSTALL defined [ticket/11388] Do not modify by reference [ticket/11388] typehits [ticket/11388] INCLUDEJS test for //(url) [ticket/11388] INCLUDEJS supports //(url) [ticket/11388] Fixing includejs test [ticket/11388] includejs inherit from includeasset [feature/twig] Unit tests for includejs [ticket/8319] Add migration file for update change ...
Diffstat (limited to 'phpBB/includes/controller')
-rw-r--r--phpBB/includes/controller/resolver.php28
1 files changed, 27 insertions, 1 deletions
diff --git a/phpBB/includes/controller/resolver.php b/phpBB/includes/controller/resolver.php
index ee469aa9c8..95dfc8da8e 100644
--- a/phpBB/includes/controller/resolver.php
+++ b/phpBB/includes/controller/resolver.php
@@ -38,15 +38,23 @@ class phpbb_controller_resolver implements ControllerResolverInterface
protected $container;
/**
+ * phpbb_style object
+ * @var phpbb_style
+ */
+ protected $style;
+
+ /**
* Construct method
*
* @param phpbb_user $user User Object
* @param ContainerInterface $container ContainerInterface object
+ * @param phpbb_style $style
*/
- public function __construct(phpbb_user $user, ContainerInterface $container)
+ public function __construct(phpbb_user $user, ContainerInterface $container, phpbb_style $style = null)
{
$this->user = $user;
$this->container = $container;
+ $this->style = $style;
}
/**
@@ -80,6 +88,24 @@ class phpbb_controller_resolver implements ControllerResolverInterface
$controller_object = $this->container->get($service);
+ /*
+ * If this is an extension controller, we'll try to automatically set
+ * the style paths for the extension (the ext author can change them
+ * if necessary).
+ */
+ $controller_dir = explode('_', get_class($controller_object));
+
+ // 0 phpbb, 1 ext, 2 vendor, 3 extension name, ...
+ if (!is_null($this->style) && isset($controller_dir[3]) && $controller_dir[1] === 'ext')
+ {
+ $controller_style_dir = 'ext/' . $controller_dir[2] . '/' . $controller_dir[3] . '/styles';
+
+ if (is_dir($controller_style_dir))
+ {
+ $this->style->set_style(array($controller_style_dir, 'styles'));
+ }
+ }
+
return array($controller_object, $method);
}