aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
authorOleg Pudeyev <oleg@bsdpower.com>2012-03-16 00:22:42 -0400
committerOleg Pudeyev <oleg@bsdpower.com>2012-11-17 16:39:57 -0500
commita6c7fbc59d02ed44ef90e340c4f957a8c5ac9ca5 (patch)
tree011ad48ebb64a7aa09749cfe1d26f3e2936efeac /phpBB/includes
parentdd7c5183fbc5401c85f530a304b70fbb0b5d7fbe (diff)
downloadforums-a6c7fbc59d02ed44ef90e340c4f957a8c5ac9ca5.tar
forums-a6c7fbc59d02ed44ef90e340c4f957a8c5ac9ca5.tar.gz
forums-a6c7fbc59d02ed44ef90e340c4f957a8c5ac9ca5.tar.bz2
forums-a6c7fbc59d02ed44ef90e340c4f957a8c5ac9ca5.tar.xz
forums-a6c7fbc59d02ed44ef90e340c4f957a8c5ac9ca5.zip
[feature/template-events] Pass top-level template name to template filter.
This will be used to invoke template-specific hooks. PHPBB3-9550
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/template/compile.php4
-rw-r--r--phpBB/includes/template/filter.php13
-rw-r--r--phpBB/includes/template/template.php12
3 files changed, 26 insertions, 3 deletions
diff --git a/phpBB/includes/template/compile.php b/phpBB/includes/template/compile.php
index b63da05394..06ff60387a 100644
--- a/phpBB/includes/template/compile.php
+++ b/phpBB/includes/template/compile.php
@@ -36,14 +36,16 @@ 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 string $template_name Name of top-level template being compiled
* @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, $extension_manager = null)
+ public function __construct($allow_php, $template_name, $locator, $phpbb_root_path, $extension_manager = null)
{
$this->filter_params = array(
'allow_php' => $allow_php,
+ 'template_name' => $template_name,
'locator' => $locator,
'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 08eb9bdd97..eca9a0d48c 100644
--- a/phpBB/includes/template/filter.php
+++ b/phpBB/includes/template/filter.php
@@ -88,6 +88,16 @@ class phpbb_template_filter extends php_user_filter
private $phpbb_root_path;
/**
+ * Name of the top-level template being compiled and/or rendered.
+ *
+ * This is used by hooks implementation to invoke template-specific
+ * template hooks.
+ *
+ * @var string
+ */
+ private $template_name;
+
+ /**
* Extension manager.
*
* @var phpbb_extension_manager
@@ -152,7 +162,7 @@ class phpbb_template_filter extends php_user_filter
/**
* Initializer, called on creation.
*
- * Get the allow_php option, root directory and locator from params,
+ * Get the allow_php option, template_name, root directory and locator from params,
* which are passed to stream_filter_append.
*/
public function onCreate()
@@ -162,6 +172,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->template_name = $this->params['template_name'];
$this->extension_manager = $this->params['extension_manager'];
$this->template_compile = $this->params['template_compile'];
return true;
diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php
index 96a16fee77..c43c1ddf99 100644
--- a/phpBB/includes/template/template.php
+++ b/phpBB/includes/template/template.php
@@ -82,6 +82,16 @@ class phpbb_template
private $extension_manager;
/**
+ * Name of the top-level template being compiled and/or rendered.
+ *
+ * This is used by hooks implementation to invoke template-specific
+ * template hooks.
+ *
+ * @var string
+ */
+ private $template_name;
+
+ /**
* Constructor.
*
* @param string $phpbb_root_path phpBB root path
@@ -291,7 +301,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, $this->extension_manager);
+ $compile = new phpbb_template_compile($this->config['tpl_allow_php'], $this->template_name, $this->locator, $this->phpbb_root_path, $this->extension_manager);
if ($compile->compile_file_to_file($source_file, $output_file) !== false)
{