mirror of
				https://github.com/phpbb/phpbb.git
				synced 2025-10-26 05:06:12 +01:00 
			
		
		
		
	Adds a new function to the template interface, and implements it in the context class. The function returns the ordinal index for a specified key, with the same structure that the key for alter_block_array. Reuses same code. Remove unneeded references, do nothing for int keys. Check out of bounds or wrong blockname errors. Added tests. Remove default parameter value. PHPBB3-14944
		
			
				
	
	
		
			165 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
| *
 | |
| * This file is part of the phpBB Forum Software package.
 | |
| *
 | |
| * @copyright (c) phpBB Limited <https://www.phpbb.com>
 | |
| * @license GNU General Public License, version 2 (GPL-2.0)
 | |
| *
 | |
| * For full copyright and license information, please see
 | |
| * the docs/CREDITS.txt file.
 | |
| *
 | |
| */
 | |
| 
 | |
| namespace phpbb\template;
 | |
| 
 | |
| abstract class base implements template
 | |
| {
 | |
| 	/**
 | |
| 	* Template context.
 | |
| 	* Stores template data used during template rendering.
 | |
| 	*
 | |
| 	* @var \phpbb\template\context
 | |
| 	*/
 | |
| 	protected $context;
 | |
| 
 | |
| 	/**
 | |
| 	* Array of filenames assigned to set_filenames
 | |
| 	*
 | |
| 	* @var array
 | |
| 	*/
 | |
| 	protected $filenames = array();
 | |
| 
 | |
| 	/**
 | |
| 	* {@inheritdoc}
 | |
| 	*/
 | |
| 	public function set_filenames(array $filename_array)
 | |
| 	{
 | |
| 		$this->filenames = array_merge($this->filenames, $filename_array);
 | |
| 
 | |
| 		return $this;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	* Get a filename from the handle
 | |
| 	*
 | |
| 	* @param string $handle
 | |
| 	* @return string
 | |
| 	*/
 | |
| 	protected function get_filename_from_handle($handle)
 | |
| 	{
 | |
| 		return (isset($this->filenames[$handle])) ? $this->filenames[$handle] : $handle;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	* {@inheritdoc}
 | |
| 	*/
 | |
| 	public function destroy()
 | |
| 	{
 | |
| 		$this->context->clear();
 | |
| 
 | |
| 		return $this;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	* {@inheritdoc}
 | |
| 	*/
 | |
| 	public function destroy_block_vars($blockname)
 | |
| 	{
 | |
| 		$this->context->destroy_block_vars($blockname);
 | |
| 
 | |
| 		return $this;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	* {@inheritdoc}
 | |
| 	*/
 | |
| 	public function assign_vars(array $vararray)
 | |
| 	{
 | |
| 		foreach ($vararray as $key => $val)
 | |
| 		{
 | |
| 			$this->assign_var($key, $val);
 | |
| 		}
 | |
| 
 | |
| 		return $this;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	* {@inheritdoc}
 | |
| 	*/
 | |
| 	public function assign_var($varname, $varval)
 | |
| 	{
 | |
| 		$this->context->assign_var($varname, $varval);
 | |
| 
 | |
| 		return $this;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	* {@inheritdoc}
 | |
| 	*/
 | |
| 	public function append_var($varname, $varval)
 | |
| 	{
 | |
| 		$this->context->append_var($varname, $varval);
 | |
| 
 | |
| 		return $this;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	* {@inheritdoc}
 | |
| 	*/
 | |
| 	public function assign_block_vars($blockname, array $vararray)
 | |
| 	{
 | |
| 		$this->context->assign_block_vars($blockname, $vararray);
 | |
| 
 | |
| 		return $this;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	* {@inheritdoc}
 | |
| 	*/
 | |
| 	public function assign_block_vars_array($blockname, array $block_vars_array)
 | |
| 	{
 | |
| 		$this->context->assign_block_vars_array($blockname, $block_vars_array);
 | |
| 
 | |
| 		return $this;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	* {@inheritdoc}
 | |
| 	*/
 | |
| 	public function alter_block_array($blockname, array $vararray, $key = false, $mode = 'insert')
 | |
| 	{
 | |
| 		return $this->context->alter_block_array($blockname, $vararray, $key, $mode);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	* {@inheritdoc}
 | |
| 	*/
 | |
| 	public function find_key_index($blockname, $key)
 | |
| 	{
 | |
| 		return $this->context->find_key_index($blockname, $key);
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	* Calls hook if any is defined.
 | |
| 	*
 | |
| 	* @param string $handle Template handle being displayed.
 | |
| 	* @param string $method Method name of the caller.
 | |
| 	*/
 | |
| 	protected function call_hook($handle, $method)
 | |
| 	{
 | |
| 		global $phpbb_hook;
 | |
| 
 | |
| 		if (!empty($phpbb_hook) && $phpbb_hook->call_hook(array('template', $method), $handle, $this))
 | |
| 		{
 | |
| 			if ($phpbb_hook->hook_return(array('template', $method)))
 | |
| 			{
 | |
| 				$result = $phpbb_hook->hook_return_result(array('template', $method));
 | |
| 				return array($result);
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		return false;
 | |
| 	}
 | |
| }
 |