aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/config/default/container/services_twig.yml1
-rw-r--r--phpBB/config/installer/container/services.yml1
-rw-r--r--phpBB/includes/functions_messenger.php6
-rw-r--r--phpBB/phpbb/template/twig/environment.php36
-rw-r--r--tests/controller/common_helper_route.php1
-rw-r--r--tests/email/email_parsing_test.php1
-rw-r--r--tests/extension/metadata_manager_test.php3
-rw-r--r--tests/template/template_allfolder_test.php1
-rw-r--r--tests/template/template_events_test.php1
-rw-r--r--tests/template/template_includecss_test.php1
-rw-r--r--tests/template/template_test_case.php1
-rw-r--r--tests/template/template_test_case_with_tree.php1
12 files changed, 49 insertions, 5 deletions
diff --git a/phpBB/config/default/container/services_twig.yml b/phpBB/config/default/container/services_twig.yml
index 3ca6d62c07..a9b5b6d4cd 100644
--- a/phpBB/config/default/container/services_twig.yml
+++ b/phpBB/config/default/container/services_twig.yml
@@ -11,6 +11,7 @@ services:
- '%core.template.cache_path%'
- '@ext.manager'
- '@template.twig.loader'
+ - '@dispatcher'
- []
calls:
- [setLexer, ['@template.twig.lexer']]
diff --git a/phpBB/config/installer/container/services.yml b/phpBB/config/installer/container/services.yml
index c16547c649..7203c0ab10 100644
--- a/phpBB/config/installer/container/services.yml
+++ b/phpBB/config/installer/container/services.yml
@@ -84,6 +84,7 @@ services:
- '%core.template.cache_path%'
- null
- '@template.twig.loader'
+ - null
- []
calls:
- [setLexer, ['@template.twig.lexer']]
diff --git a/phpBB/includes/functions_messenger.php b/phpBB/includes/functions_messenger.php
index 757a49003b..802246c1c5 100644
--- a/phpBB/includes/functions_messenger.php
+++ b/phpBB/includes/functions_messenger.php
@@ -656,7 +656,7 @@ class messenger
*/
protected function setup_template()
{
- global $phpbb_container;
+ global $phpbb_container, $phpbb_dispatcher;
if ($this->template instanceof \phpbb\template\template)
{
@@ -671,7 +671,9 @@ class messenger
$phpbb_container->get('ext.manager'),
new \phpbb\template\twig\loader(
$phpbb_container->get('filesystem')
- )
+ ),
+ $phpbb_dispatcher,
+ array()
);
$template_environment->setLexer($phpbb_container->get('template.twig.lexer'));
diff --git a/phpBB/phpbb/template/twig/environment.php b/phpBB/phpbb/template/twig/environment.php
index 179412a2e3..ac4b16e457 100644
--- a/phpBB/phpbb/template/twig/environment.php
+++ b/phpBB/phpbb/template/twig/environment.php
@@ -32,6 +32,9 @@ class environment extends \Twig_Environment
/** @var \phpbb\extension\manager */
protected $extension_manager;
+ /** @var \phpbb\event\dispatcher_interface */
+ protected $phpbb_dispatcher;
+
/** @var string */
protected $phpbb_root_path;
@@ -53,15 +56,17 @@ class environment extends \Twig_Environment
* @param string $cache_path The path to the cache directory
* @param \phpbb\extension\manager $extension_manager phpBB extension manager
* @param \Twig_LoaderInterface $loader Twig loader interface
+ * @param \phpbb\event\dispatcher_interface $phpbb_dispatcher Event dispatcher object
* @param array $options Array of options to pass to Twig
*/
- public function __construct(\phpbb\config\config $phpbb_config, \phpbb\filesystem\filesystem $filesystem, \phpbb\path_helper $path_helper, $cache_path, \phpbb\extension\manager $extension_manager = null, \Twig_LoaderInterface $loader = null, $options = array())
+ public function __construct(\phpbb\config\config $phpbb_config, \phpbb\filesystem\filesystem $filesystem, \phpbb\path_helper $path_helper, $cache_path, \phpbb\extension\manager $extension_manager = null, \Twig_LoaderInterface $loader = null, \phpbb\event\dispatcher_interface $phpbb_dispatcher = null, $options = array())
{
$this->phpbb_config = $phpbb_config;
$this->filesystem = $filesystem;
$this->phpbb_path_helper = $path_helper;
$this->extension_manager = $extension_manager;
+ $this->phpbb_dispatcher = $phpbb_dispatcher;
$this->phpbb_root_path = $this->phpbb_path_helper->get_phpbb_root_path();
$this->web_root_path = $this->phpbb_path_helper->get_web_root_path();
@@ -202,8 +207,37 @@ class environment extends \Twig_Environment
$context['definition']->set('STYLESHEETS', '__STYLESHEETS_' . $placeholder_salt . '__');
}
+ /**
+ * Allow changing the template output stream before rendering
+ *
+ * @event core.twig_environment_render_template_before
+ * @var array context Array with template variables
+ * @var string name The template name
+ * @since 3.2.1-RC1
+ */
+ if ($this->phpbb_dispatcher)
+ {
+ $vars = array('context', 'name');
+ extract($this->phpbb_dispatcher->trigger_event('core.twig_environment_render_template_before', compact($vars)));
+ }
+
$output = parent::render($name, $context);
+ /**
+ * Allow changing the template output stream after rendering
+ *
+ * @event core.twig_environment_render_template_after
+ * @var array context Array with template variables
+ * @var string name The template name
+ * @var string output Rendered template output stream
+ * @since 3.2.1-RC1
+ */
+ if ($this->phpbb_dispatcher)
+ {
+ $vars = array('context', 'name', 'output');
+ extract($this->phpbb_dispatcher->trigger_event('core.twig_environment_render_template_after', compact($vars)));
+ }
+
return $this->inject_assets($output, $placeholder_salt);
}
diff --git a/tests/controller/common_helper_route.php b/tests/controller/common_helper_route.php
index 367c15a667..ea2bc042b1 100644
--- a/tests/controller/common_helper_route.php
+++ b/tests/controller/common_helper_route.php
@@ -114,6 +114,7 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
$cache_path,
null,
$loader,
+ new \phpbb\event\dispatcher($container),
array(
'cache' => false,
'debug' => false,
diff --git a/tests/email/email_parsing_test.php b/tests/email/email_parsing_test.php
index 351a38514f..8fdfe3035e 100644
--- a/tests/email/email_parsing_test.php
+++ b/tests/email/email_parsing_test.php
@@ -81,6 +81,7 @@ class phpbb_email_parsing_test extends phpbb_test_case
$cache_path,
null,
new \phpbb\template\twig\loader($filesystem, ''),
+ new \phpbb\event\dispatcher($phpbb_container),
array(
'cache' => false,
'debug' => false,
diff --git a/tests/extension/metadata_manager_test.php b/tests/extension/metadata_manager_test.php
index 8ef41f3673..533da68c57 100644
--- a/tests/extension/metadata_manager_test.php
+++ b/tests/extension/metadata_manager_test.php
@@ -70,6 +70,7 @@ class phpbb_extension_metadata_manager_test extends phpbb_database_test_case
$cache_path,
null,
$loader,
+ new \phpbb\event\dispatcher($container),
array(
'cache' => false,
'debug' => false,
@@ -78,8 +79,6 @@ class phpbb_extension_metadata_manager_test extends phpbb_database_test_case
)
);
- $container = new phpbb_mock_container_builder();
-
$this->migrator = new \phpbb\db\migrator(
$container,
$this->config,
diff --git a/tests/template/template_allfolder_test.php b/tests/template/template_allfolder_test.php
index 9a0a42fabd..63a6ef08ea 100644
--- a/tests/template/template_allfolder_test.php
+++ b/tests/template/template_allfolder_test.php
@@ -67,6 +67,7 @@ class phpbb_template_allfolder_test extends phpbb_template_template_test_case
$cache_path,
$this->extension_manager,
$loader,
+ new \phpbb\event\dispatcher($container),
array(
'cache' => false,
'debug' => false,
diff --git a/tests/template/template_events_test.php b/tests/template/template_events_test.php
index e245c90aee..3a93c91e11 100644
--- a/tests/template/template_events_test.php
+++ b/tests/template/template_events_test.php
@@ -161,6 +161,7 @@ Zeta test event in all',
$cache_path,
$this->extension_manager,
$loader,
+ new \phpbb\event\dispatcher($container),
array(
'cache' => false,
'debug' => false,
diff --git a/tests/template/template_includecss_test.php b/tests/template/template_includecss_test.php
index 764652c9c2..bc871aa612 100644
--- a/tests/template/template_includecss_test.php
+++ b/tests/template/template_includecss_test.php
@@ -53,6 +53,7 @@ class phpbb_template_template_includecss_test extends phpbb_template_template_te
$cache_path,
null,
$loader,
+ new \phpbb\event\dispatcher($container),
array(
'cache' => false,
'debug' => false,
diff --git a/tests/template/template_test_case.php b/tests/template/template_test_case.php
index e52d3b76dd..8adbafb1b2 100644
--- a/tests/template/template_test_case.php
+++ b/tests/template/template_test_case.php
@@ -105,6 +105,7 @@ class phpbb_template_template_test_case extends phpbb_test_case
$cache_path,
null,
$loader,
+ new \phpbb\event\dispatcher($container),
array(
'cache' => false,
'debug' => false,
diff --git a/tests/template/template_test_case_with_tree.php b/tests/template/template_test_case_with_tree.php
index ff35d16120..75e3918f44 100644
--- a/tests/template/template_test_case_with_tree.php
+++ b/tests/template/template_test_case_with_tree.php
@@ -48,6 +48,7 @@ class phpbb_template_template_test_case_with_tree extends phpbb_template_templat
$cache_path,
null,
$loader,
+ new \phpbb\event\dispatcher($container),
array(
'cache' => false,
'debug' => false,