* @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 = false) { 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; } }