diff options
| author | Marc Alexander <admin@m-a-styles.de> | 2016-02-18 21:52:51 +0100 | 
|---|---|---|
| committer | Marc Alexander <admin@m-a-styles.de> | 2016-02-18 21:52:51 +0100 | 
| commit | c485312d384b450b057b08b0002d9e3fc3013ca8 (patch) | |
| tree | 43828d9b0761cf8144c59f032891249c7b79ac68 /phpBB/phpbb | |
| parent | 269e9585324dfa45f78168c936a844aa1becfa06 (diff) | |
| parent | f6fd819764016afe39dcc3c486b0fe73c9478ad5 (diff) | |
| download | forums-c485312d384b450b057b08b0002d9e3fc3013ca8.tar forums-c485312d384b450b057b08b0002d9e3fc3013ca8.tar.gz forums-c485312d384b450b057b08b0002d9e3fc3013ca8.tar.bz2 forums-c485312d384b450b057b08b0002d9e3fc3013ca8.tar.xz forums-c485312d384b450b057b08b0002d9e3fc3013ca8.zip  | |
Merge branch '3.2.x'
Diffstat (limited to 'phpBB/phpbb')
| -rw-r--r-- | phpBB/phpbb/template/twig/definition.php | 5 | ||||
| -rw-r--r-- | phpBB/phpbb/template/twig/environment.php | 39 | ||||
| -rw-r--r-- | phpBB/phpbb/template/twig/twig.php | 2 | 
3 files changed, 20 insertions, 26 deletions
diff --git a/phpBB/phpbb/template/twig/definition.php b/phpBB/phpbb/template/twig/definition.php index 205f0e68ee..cb3c953692 100644 --- a/phpBB/phpbb/template/twig/definition.php +++ b/phpBB/phpbb/template/twig/definition.php @@ -19,10 +19,7 @@ namespace phpbb\template\twig;  class definition  {  	/** @var array **/ -	protected $definitions = array( -		'SCRIPTS'		=> '__SCRIPTS_PLACEHOLDER__', -		'STYLESHEETS'	=> '__STYLESHEETS_PLACEHOLDER__' -	); +	protected $definitions = array();  	/**  	* Get a DEFINE'd variable diff --git a/phpBB/phpbb/template/twig/environment.php b/phpBB/phpbb/template/twig/environment.php index 5660ddc3a4..56c85c8d71 100644 --- a/phpBB/phpbb/template/twig/environment.php +++ b/phpBB/phpbb/template/twig/environment.php @@ -195,9 +195,7 @@ class environment extends \Twig_Environment  	 */  	public function render($name, array $context = [])  	{ -		$output = parent::render($name, $context); - -		return $this->inject_assets($output); +		return $this->display_with_assets($name, $context);  	}  	/** @@ -205,26 +203,25 @@ class environment extends \Twig_Environment  	 */  	public function display($name, array $context = [])  	{ -		$level = ob_get_level(); -		ob_start(); +		echo $this->display_with_assets($name, $context); +	} -		try -		{ -			parent::display($name, $context); -		} -		catch (\Exception $e) -		{ -			while (ob_get_level() > $level) -			{ -				ob_end_clean(); -			} +	/** +	 * {@inheritdoc} +	 */ +	private function display_with_assets($name, array $context = []) +	{ +		$placeholder_salt = unique_id(); -			throw $e; +		if (array_key_exists('definition', $context)) +		{ +			$context['definition']->set('SCRIPTS', '__SCRIPTS_' . $placeholder_salt . '__'); +			$context['definition']->set('STYLESHEETS', '__STYLESHEETS_' . $placeholder_salt . '__');  		} -		$output = ob_get_clean(); +		$output = parent::render($name, $context); -		echo $this->inject_assets($output); +		return $this->inject_assets($output, $placeholder_salt);  	}  	/** @@ -234,10 +231,10 @@ class environment extends \Twig_Environment  	 *  	 * @return string  	 */ -	private function inject_assets($output) +	private function inject_assets($output, $placeholder_salt)  	{ -		$output = str_replace('__STYLESHEETS_PLACEHOLDER__', $this->assets_bag->get_stylesheets_content(), $output); -		$output = str_replace('__SCRIPTS_PLACEHOLDER__', $this->assets_bag->get_scripts_content(), $output); +		$output = str_replace('__STYLESHEETS_' . $placeholder_salt . '__', $this->assets_bag->get_stylesheets_content(), $output); +		$output = str_replace('__SCRIPTS_' . $placeholder_salt . '__', $this->assets_bag->get_scripts_content(), $output);  		return $output;  	} diff --git a/phpBB/phpbb/template/twig/twig.php b/phpBB/phpbb/template/twig/twig.php index 6b3cf32bc8..f322778eda 100644 --- a/phpBB/phpbb/template/twig/twig.php +++ b/phpBB/phpbb/template/twig/twig.php @@ -335,7 +335,7 @@ class twig extends \phpbb\template\base  			return $this->twig->render($this->get_filename_from_handle($handle), $this->get_template_vars());  		} -		$this->assign_var($template_var, $this->twig->render($this->get_filename_from_handle($handle, $this->get_template_vars()))); +		$this->assign_var($template_var, $this->twig->render($this->get_filename_from_handle($handle), $this->get_template_vars()));  		return $this;  	}  | 
