path) * @param string $phpbb_root_path * @param Twig_LoaderInterface $loader * @param array $options Array of options to pass to Twig */ public function __construct($phpbb_config, $phpbb_extensions, $phpbb_root_path, Twig_LoaderInterface $loader = null, $options = array()) { $this->phpbb_config = $phpbb_config; $this->phpbb_extensions = $phpbb_extensions; $this->phpbb_root_path = $phpbb_root_path; return parent::__construct($loader, $options); } /** * Get the list of enabled phpBB extensions * * Used in EVENT node * * @return array */ public function get_phpbb_extensions() { return $this->phpbb_extensions; } /** * Get phpBB config * * @return phpbb_config */ public function get_phpbb_config() { return $this->phpbb_config; } /** * Get the phpBB root path * * @return string */ public function get_phpbb_root_path() { return $this->phpbb_root_path; } /** * Get the namespace look up order * * @return array */ public function getNamespaceLookUpOrder() { return $this->namespace_look_up_order; } /** * Set the namespace look up order to load templates from * * @param array $namespace * @return Twig_Environment */ public function setNamespaceLookUpOrder($namespace) { $this->namespace_look_up_order = $namespace; return $this; } /** * Loads a template by name. * * @param string $name The template name * @param integer $index The index if it is an embedded template * @return Twig_TemplateInterface A template instance representing the given template name */ public function loadTemplate($name, $index = null) { if (strpos($name, '@') === false) { foreach ($this->getNamespaceLookUpOrder() as $namespace) { try { if ($namespace === '__main__') { return parent::loadTemplate($name, $index); } return parent::loadTemplate('@' . $namespace . '/' . $name, $index); } catch (Twig_Error_Loader $e) { } } // We were unable to load any templates throw $e; } else { return parent::loadTemplate($name, $index); } } }