From 0462ab3a4a5cea64699eaf4b2e9900e36d027e50 Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Mon, 9 May 2011 22:00:38 -0400 Subject: [feature/template-engine] Add back IN_PHPBB preamble. PHPBB3-9726 --- phpBB/includes/template/compile.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'phpBB') diff --git a/phpBB/includes/template/compile.php b/phpBB/includes/template/compile.php index 4132fb2e34..18a52e87a6 100644 --- a/phpBB/includes/template/compile.php +++ b/phpBB/includes/template/compile.php @@ -54,6 +54,7 @@ class phpbb_template_filter extends php_user_filter public function filter($in, $out, &$consumed, $closing) { $written = false; + $first = false; while ($bucket = stream_bucket_make_writeable($in)) { @@ -71,7 +72,13 @@ class phpbb_template_filter extends php_user_filter $written = true; - $bucket->data = $this->compile($data); + $data = $this->compile($data); + if (!$first) + { + $data = $this->prepend_preamble($data); + $first = false; + } + $bucket->data = $data; $bucket->datalen = strlen($bucket->data); stream_bucket_append($out, $bucket); } @@ -150,6 +157,18 @@ class phpbb_template_filter extends php_user_filter return $data; } + /** + * Prepends a preamble to compiled template. + * Currently preamble checks if IN_PHPBB is defined and calls exit() if it is not. + * @param string $data Compiled template chunk + * @return string Compiled template chunk with preamble prepended + */ + private function prepend_preamble($data) + { + $data = "' . $data); + return $data; + } + private function replace($matches) { if ($this->in_php && $matches[1] != 'ENDPHP') -- cgit v1.2.1