1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 05:50:42 +02:00

[feature/extension-manager] Add support for templates in extensions.

This commit adds a template path provider to separate the process of locating
(cached) paths in extensions from the template engine. The locator is supplied
with a list of paths from the path provider.

Admin templates can now be created in ext/<ext>/adm/style/ and regular
templates go into ext/<ext>/styles/<style>/template/. Extension templates
override regular templates. So if an extension supplies a file with a name
used in phpBB, the extension's file will be used.

A side-effect of this commit: Locator and Provider are now able to deal with
arbitrary levels of template inheritance. So we can expose this through
phpbb_template if we choose to, and allow styles to inherit from inherited
styles.

PHPBB3-10323
This commit is contained in:
Nils Adermann
2011-08-30 01:32:11 -04:00
parent 6ea6d50ccb
commit ea46feb115
11 changed files with 243 additions and 94 deletions

View File

@@ -175,7 +175,7 @@ class messenger
*/
function template($template_file, $template_lang = '', $template_path = '')
{
global $config, $phpbb_root_path, $phpEx, $user;
global $config, $phpbb_root_path, $phpEx, $user, $phpbb_extension_manager;
if (!trim($template_file))
{
@@ -194,7 +194,8 @@ class messenger
if (!isset($this->tpl_msg[$template_lang . $template_file]))
{
$template_locator = new phpbb_template_locator();
$this->tpl_msg[$template_lang . $template_file] = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $template_locator);
$template_path_provider = new phpbb_template_path_provider($phpbb_extension_manager);
$this->tpl_msg[$template_lang . $template_file] = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $template_locator, $template_path_provider);
$tpl = &$this->tpl_msg[$template_lang . $template_file];
$fallback_template_path = false;