*/ class Smarty extends \Slim\View { /** * @var string The path to the Smarty code directory WITHOUT the trailing slash */ public $parserDirectory = null; /** * @var string The path to the Smarty compiled templates folder WITHOUT the trailing slash */ public $parserCompileDirectory = null; /** * @var string The path to the Smarty cache folder WITHOUT the trailing slash */ public $parserCacheDirectory = null; /** * @var SmartyExtensions The Smarty extensions directory you want to load plugins from */ public $parserExtensions = array(); /** * @var parserInstance persistent instance of the Parser object. */ private $parserInstance = null; /** * Render Template * * This method will output the rendered template content * * @param string $template The path to the template, relative to the templates directory. * @param null $data * @return string */ public function render($template, $data = null) { $parser = $this->getInstance(); $parser->assign($this->all()); return $parser->fetch($template, $data); } /** * Creates new Smarty object instance if it doesn't already exist, and returns it. * * @throws \RuntimeException If Smarty lib directory does not exist * @return \Smarty Instance */ public function getInstance() { if (!($this->parserInstance instanceof \Smarty)) { if (!class_exists('\Smarty')) { if (!is_dir($this->parserDirectory)) { throw new \RuntimeException('Cannot set the Smarty lib directory : ' . $this->parserDirectory . '. Directory does not exist.'); } require_once $this->parserDirectory . '/Smarty.class.php'; } $this->parserInstance = new \Smarty(); $this->parserInstance->template_dir = $this->getTemplatesDirectory(); if ($this->parserExtensions) { $this->parserInstance->addPluginsDir($this->parserExtensions); } if ($this->parserCompileDirectory) { $this->parserInstance->compile_dir = $this->parserCompileDirectory; } if ($this->parserCacheDirectory) { $this->parserInstance->cache_dir = $this->parserCacheDirectory; } } return $this->parserInstance; } }