diff --git a/phpBB/common.php b/phpBB/common.php index 3f039e49c0..1e3f787611 100644 --- a/phpBB/common.php +++ b/phpBB/common.php @@ -124,7 +124,9 @@ set_config_count(null, null, null, $config); $phpbb_extension_manager = new phpbb_extension_manager($db, EXT_TABLE, $phpbb_root_path, ".$phpEx", $cache->get_driver()); // Initialize style -$style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $phpbb_extension_manager); +$phpbb_style_resource_locator = new phpbb_style_resource_locator(); +$phpbb_style_path_provider = new phpbb_style_extension_path_provider($phpbb_extension_manager, new phpbb_style_path_provider()); +$style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $phpbb_style_resource_locator, $phpbb_style_path_provider); $template = $style->template; $phpbb_subscriber_loader = new phpbb_event_extension_subscriber_loader($phpbb_dispatcher, $phpbb_extension_manager); diff --git a/phpBB/includes/bbcode.php b/phpBB/includes/bbcode.php index 5e3bfed5ec..2cae38022e 100644 --- a/phpBB/includes/bbcode.php +++ b/phpBB/includes/bbcode.php @@ -132,11 +132,13 @@ class bbcode { $this->template_bitfield = new bitfield($user->theme['bbcode_bitfield']); - $style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $phpbb_extension_manager); + $style_resource_locator = new phpbb_style_resource_locator(); + $style_path_provider = new phpbb_style_extension_path_provider($phpbb_extension_manager, new phpbb_style_path_provider()); + $style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, $style_path_provider); $style->set_style(); $template = $style->template; $template->set_filenames(array('bbcode.html' => 'bbcode.html')); - $this->template_filename = $style->locator->get_source_file_for_handle('bbcode.html'); + $this->template_filename = $style_resource_locator->get_source_file_for_handle('bbcode.html'); } $bbcode_ids = $rowset = $sql = array(); diff --git a/phpBB/includes/functions_messenger.php b/phpBB/includes/functions_messenger.php index a5e7ad75ca..4d076a7957 100644 --- a/phpBB/includes/functions_messenger.php +++ b/phpBB/includes/functions_messenger.php @@ -208,7 +208,9 @@ class messenger // tpl_msg now holds a template object we can use to parse the template file if (!isset($this->tpl_msg[$template_lang . $template_file])) { - $this->tpl_msg[$template_lang . $template_file] = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $phpbb_extension_manager); + $style_resource_locator = new phpbb_style_resource_locator(); + $style_path_provider = new phpbb_style_extension_path_provider($phpbb_extension_manager, new phpbb_style_path_provider()); + $this->tpl_msg[$template_lang . $template_file] = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, $style_path_provider); $stl = &$this->tpl_msg[$template_lang . $template_file]; $tpl = $stl->template; diff --git a/phpBB/includes/style/style.php b/phpBB/includes/style/style.php index 5dee0a138c..265a45eca7 100644 --- a/phpBB/includes/style/style.php +++ b/phpBB/includes/style/style.php @@ -50,9 +50,8 @@ class phpbb_style /** * Style resource locator * @var phpbb_style_resource_locator - * This item is temporary public, until locate() function is implemented */ - public $locator; + private $locator; /** * Style path provider @@ -65,20 +64,17 @@ class phpbb_style * * @param string $phpbb_root_path phpBB root path * @param user $user current user - * @param phpbb_extension_manager $phpbb_extension_manager extension manager. Set it to false if extension manager should not be used. + * @param phpbb_style_resource_locator $locator style resource locator + * @param phpbb_style_path_provider $provider style path provider */ - public function __construct($phpbb_root_path, $phpEx, $config, $user, $phpbb_extension_manager = false) + public function __construct($phpbb_root_path, $phpEx, $config, $user, phpbb_style_resource_locator $locator, phpbb_style_path_provider_interface $provider) { $this->phpbb_root_path = $phpbb_root_path; $this->phpEx = $phpEx; $this->config = $config; $this->user = $user; - $this->locator = new phpbb_style_resource_locator(); - $this->provider = new phpbb_style_path_provider(); - if ($phpbb_extension_manager !== false) - { - $this->provider = new phpbb_style_extension_path_provider($phpbb_extension_manager, $this->provider); - } + $this->locator = $locator; + $this->provider = $provider; $this->template = new phpbb_style_template($this->phpbb_root_path, $this->phpEx, $this->config, $this->user, $this->locator, $this->provider); } diff --git a/phpBB/install/index.php b/phpBB/install/index.php index 49f7847489..fdce7234e5 100644 --- a/phpBB/install/index.php +++ b/phpBB/install/index.php @@ -202,7 +202,9 @@ $config = new phpbb_config(array( 'load_tplcompile' => '1' )); -$style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, false); +$phpbb_style_resource_locator = new phpbb_style_resource_locator(); +$phpbb_style_path_provider = new phpbb_style_path_provider(); +$style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $phpbb_style_resource_locator, $phpbb_style_path_provider); $style->set_ext_dir_prefix('adm/'); $style->set_custom_style('admin', '../adm/style', ''); $template = $style->template; diff --git a/tests/template/template_inheritance_test.php b/tests/template/template_inheritance_test.php index f7bd38cc08..aa527a3eb5 100644 --- a/tests/template/template_inheritance_test.php +++ b/tests/template/template_inheritance_test.php @@ -71,7 +71,9 @@ class phpbb_template_template_inheritance_test extends phpbb_template_template_t $this->template_path = dirname(__FILE__) . '/templates'; $this->parent_template_path = dirname(__FILE__) . '/parent_templates'; - $this->style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, false); + $this->style_resource_locator = new phpbb_style_path_provider(); + $this->style_provider = new phpbb_style_path_provider(); + $this->style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $this->style_resource_locator, $this->style_provider); $this->style->set_custom_style('tests', array($this->template_path, $this->parent_template_path), ''); $this->template = $this->style->template; } diff --git a/tests/template/template_test_case.php b/tests/template/template_test_case.php index 5884225a54..f324736ba4 100644 --- a/tests/template/template_test_case.php +++ b/tests/template/template_test_case.php @@ -15,6 +15,8 @@ class phpbb_template_template_test_case extends phpbb_test_case protected $style; protected $template; protected $template_path; + protected $style_resource_locator; + protected $style_provider; // Keep the contents of the cache for debugging? const PRESERVE_CACHE = true; @@ -62,7 +64,9 @@ class phpbb_template_template_test_case extends phpbb_test_case $config = new phpbb_config(array_merge($defaults, $new_config)); $this->template_path = dirname(__FILE__) . '/templates'; - $this->style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, false); + $this->style_resource_locator = new phpbb_style_path_provider(); + $this->style_provider = new phpbb_style_path_provider(); + $this->style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $this->style_resource_locator, $this->style_provider); $this->style->set_custom_style('tests', $this->template_path, ''); $this->template = $this->style->template; }