| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 | 
							- <?php
 - 
 - /**
 -  * Smarty Template Resource Base Object
 -  *
 -  * @package    Smarty
 -  * @subpackage TemplateResources
 -  * @author     Rodney Rehm
 -  */
 - abstract class Smarty_Template_Resource_Base
 - {
 -     /**
 -      * Compiled Filepath
 -      *
 -      * @var string
 -      */
 -     public $filepath = null;
 - 
 -     /**
 -      * Compiled Timestamp
 -      *
 -      * @var integer
 -      */
 -     public $timestamp = null;
 - 
 -     /**
 -      * Compiled Existence
 -      *
 -      * @var boolean
 -      */
 -     public $exists = false;
 - 
 -     /**
 -      * Template Compile Id (Smarty_Internal_Template::$compile_id)
 -      *
 -      * @var string
 -      */
 -     public $compile_id = null;
 - 
 -     /**
 -      * Compiled Content Loaded
 -      *
 -      * @var boolean
 -      */
 -     public $processed = false;
 - 
 -     /**
 -      * unique function name for compiled template code
 -      *
 -      * @var string
 -      */
 -     public $unifunc = '';
 - 
 -     /**
 -      * flag if template does contain nocache code sections
 -      *
 -      * @var bool
 -      */
 -     public $has_nocache_code = false;
 - 
 -     /**
 -      * resource file dependency
 -      *
 -      * @var array
 -      */
 -     public $file_dependency = array();
 - 
 -     /**
 -      * Content buffer
 -      *
 -      * @var string
 -      */
 -     public $content = null;
 - 
 -     /**
 -      * required plugins
 -      *
 -      * @var array
 -      */
 -     public $required_plugins = array();
 - 
 -     /**
 -      * Included subtemplates
 -      *
 -      * @var array
 -      */
 -     public $includes = array();
 - 
 -     /**
 -      * Process resource
 -      *
 -      * @param Smarty_Internal_Template $_template template object
 -      */
 -     abstract public function process(Smarty_Internal_Template $_template);
 - 
 -      /**
 -      * get rendered template content by calling compiled or cached template code
 -      *
 -      * @param string $unifunc function with template code
 -      *
 -      * @return string
 -      * @throws \Exception
 -      */
 -     public function getRenderedTemplateCode(Smarty_Internal_Template $_template, $unifunc = null)
 -     {
 -         $unifunc = isset($unifunc) ? $unifunc : $this->unifunc;
 -         $level = ob_get_level();
 -         try {
 -             if (empty($unifunc) || !is_callable($unifunc)) {
 -                 throw new SmartyException("Invalid compiled template for '{$_template->template_resource}'");
 -             }
 -             if (isset($_template->smarty->security_policy)) {
 -                 $_template->smarty->security_policy->startTemplate($_template);
 -             }
 -             //
 -             // render compiled or saved template code
 -             //
 -             if (!isset($_template->_cache['capture_stack'])) {
 -                 $_template->_cache['capture_stack'] = array();
 -             }
 -             $_saved_capture_level = count($_template->_cache['capture_stack']);
 -             $unifunc($_template);
 -             // any unclosed {capture} tags ?
 -             if ($_saved_capture_level != count($_template->_cache['capture_stack'])) {
 -                 $_template->capture_error();
 -             }
 -             if (isset($_template->smarty->security_policy)) {
 -                 $_template->smarty->security_policy->exitTemplate();
 -             }
 -             return null;
 -         }
 -         catch (Exception $e) {
 -             while (ob_get_level() > $level) {
 -                 ob_end_clean();
 -             }
 -              if (isset($_template->smarty->security_policy)) {
 -                 $_template->smarty->security_policy->exitTemplate();
 -             }
 -             throw $e;
 -         }
 -     }
 - 
 -     /**
 -      * Get compiled time stamp
 -      *
 -      * @return int
 -      */
 -     public function getTimeStamp()
 -     {
 -         if ($this->exists && !isset($this->timestamp)) {
 -             $this->timestamp = @filemtime($this->filepath);
 -         }
 -         return $this->timestamp;
 -     }
 - }
 
 
  |