aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/config/services.yml1
-rw-r--r--phpBB/includes/bbcode.php2
-rw-r--r--phpBB/includes/functions_messenger.php2
-rw-r--r--phpBB/includes/template/compile.php8
-rw-r--r--phpBB/includes/template/filter.php8
-rw-r--r--phpBB/includes/template/template.php13
6 files changed, 27 insertions, 7 deletions
diff --git a/phpBB/config/services.yml b/phpBB/config/services.yml
index 20aa0546d5..83a1c1fa69 100644
--- a/phpBB/config/services.yml
+++ b/phpBB/config/services.yml
@@ -128,6 +128,7 @@ services:
- @user
- @style.resource_locator
- @template_context
+ - @ext.manager
template_context:
class: phpbb_template_context
diff --git a/phpBB/includes/bbcode.php b/phpBB/includes/bbcode.php
index b9ffa8091c..e8681420d4 100644
--- a/phpBB/includes/bbcode.php
+++ b/phpBB/includes/bbcode.php
@@ -134,7 +134,7 @@ class bbcode
$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());
- $template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, new phpbb_template_context());
+ $template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, new phpbb_template_context(), $phpbb_extension_manager);
$style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, $style_path_provider, $template);
$style->set_style();
$template->set_filenames(array('bbcode.html' => 'bbcode.html'));
diff --git a/phpBB/includes/functions_messenger.php b/phpBB/includes/functions_messenger.php
index cf03de08c4..55884caedb 100644
--- a/phpBB/includes/functions_messenger.php
+++ b/phpBB/includes/functions_messenger.php
@@ -210,7 +210,7 @@ class messenger
{
$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());
- $tpl = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, new phpbb_template_context());
+ $tpl = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, new phpbb_template_context(), $extension_manager);
$style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, $style_path_provider, $tpl);
$this->tpl_msg[$template_lang . $template_file] = $tpl;
diff --git a/phpBB/includes/template/compile.php b/phpBB/includes/template/compile.php
index 82b301c1a2..fb7d146701 100644
--- a/phpBB/includes/template/compile.php
+++ b/phpBB/includes/template/compile.php
@@ -35,16 +35,18 @@ class phpbb_template_compile
/**
* Constructor.
*
- * @param bool @allow_php Whether PHP code will be allowed in templates (inline PHP code, PHP tag and INCLUDEPHP tag)
+ * @param bool $allow_php Whether PHP code will be allowed in templates (inline PHP code, PHP tag and INCLUDEPHP tag)
* @param phpbb_style_resource_locator $locator Resource locator
* @param string $phpbb_root_path Path to phpBB root directory
+ * @param phpbb_extension_manager $extension_manager Extension manager to use for finding template fragments in extensions; if null, template hooks will not be invoked
*/
- public function __construct($allow_php, $locator, $phpbb_root_path)
+ public function __construct($allow_php, $locator, $phpbb_root_path, $extension_manager = null)
{
$this->filter_params = array(
'allow_php' => $allow_php,
'locator' => $locator,
- 'phpbb_root_path' => $phpbb_root_path
+ 'phpbb_root_path' => $phpbb_root_path,
+ 'extension_manager' => $extension_manager,
);
}
diff --git a/phpBB/includes/template/filter.php b/phpBB/includes/template/filter.php
index fc99ba5917..911f21ef00 100644
--- a/phpBB/includes/template/filter.php
+++ b/phpBB/includes/template/filter.php
@@ -88,6 +88,13 @@ class phpbb_template_filter extends php_user_filter
private $phpbb_root_path;
/**
+ * Extension manager.
+ *
+ * @var phpbb_extension_manager
+ */
+ private $extension_manager;
+
+ /**
* Stream filter
*
* Is invoked for evey chunk of the stream, allowing us
@@ -148,6 +155,7 @@ class phpbb_template_filter extends php_user_filter
$this->allow_php = $this->params['allow_php'];
$this->locator = $this->params['locator'];
$this->phpbb_root_path = $this->params['phpbb_root_path'];
+ $this->extension_manager = $this->params['extension_manager'];
return true;
}
diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php
index 5396ddbfad..96a16fee77 100644
--- a/phpBB/includes/template/template.php
+++ b/phpBB/includes/template/template.php
@@ -75,14 +75,22 @@ class phpbb_template
private $locator;
/**
+ * Extension manager.
+ *
+ * @var phpbb_extension_manager
+ */
+ private $extension_manager;
+
+ /**
* Constructor.
*
* @param string $phpbb_root_path phpBB root path
* @param user $user current user
* @param phpbb_template_locator $locator template locator
* @param phpbb_template_context $context template context
+ * @param phpbb_extension_manager $extension_manager extension manager, if null then template hooks will not be invoked
*/
- public function __construct($phpbb_root_path, $php_ext, $config, $user, phpbb_template_locator $locator, phpbb_template_context $context)
+ public function __construct($phpbb_root_path, $php_ext, $config, $user, phpbb_template_locator $locator, phpbb_template_context $context, phpbb_extension_manager $extension_manager = null)
{
$this->phpbb_root_path = $phpbb_root_path;
$this->php_ext = $php_ext;
@@ -90,6 +98,7 @@ class phpbb_template
$this->user = $user;
$this->locator = $locator;
$this->context = $context;
+ $this->extension_manager = $extension_manager;
}
/**
@@ -282,7 +291,7 @@ class phpbb_template
return new phpbb_template_renderer_include($output_file, $this);
}
- $compile = new phpbb_template_compile($this->config['tpl_allow_php'], $this->locator, $this->phpbb_root_path);
+ $compile = new phpbb_template_compile($this->config['tpl_allow_php'], $this->locator, $this->phpbb_root_path, $this->extension_manager);
if ($compile->compile_file_to_file($source_file, $output_file) !== false)
{