library/smarty/libs/sysplugins/smarty_resource_uncompiled.php
changeset 0 4869aea77e21
equal deleted inserted replaced
-1:000000000000 0:4869aea77e21
       
     1 <?php
       
     2 /**
       
     3  * Smarty Resource Plugin
       
     4  *
       
     5  * @package    Smarty
       
     6  * @subpackage TemplateResources
       
     7  * @author     Rodney Rehm
       
     8  */
       
     9 
       
    10 /**
       
    11  * Smarty Resource Plugin
       
    12  * Base implementation for resource plugins that don't use the compiler
       
    13  *
       
    14  * @package    Smarty
       
    15  * @subpackage TemplateResources
       
    16  */
       
    17 abstract class Smarty_Resource_Uncompiled extends Smarty_Resource {
       
    18     /**
       
    19      * Flag that it's an uncompiled resource
       
    20      *
       
    21      * @var bool
       
    22      */
       
    23     public $uncompiled = true;
       
    24 
       
    25     /**
       
    26      * Render and output the template (without using the compiler)
       
    27      *
       
    28      * @param  Smarty_Template_Source $source source object
       
    29      * @param  Smarty_Internal_Template $_template template object
       
    30      *
       
    31      * @throws SmartyException          on failure
       
    32      */
       
    33     abstract public function renderUncompiled(Smarty_Template_Source $source, Smarty_Internal_Template $_template);
       
    34 
       
    35     /**
       
    36      * populate compiled object with compiled filepath
       
    37      *
       
    38      * @param Smarty_Template_Compiled $compiled compiled object
       
    39      * @param Smarty_Internal_Template $_template template object (is ignored)
       
    40      */
       
    41     public function populateCompiledFilepath(Smarty_Template_Compiled $compiled, Smarty_Internal_Template $_template) {
       
    42         $compiled->filepath = false;
       
    43         $compiled->timestamp = false;
       
    44         $compiled->exists = false;
       
    45     }
       
    46 
       
    47     /**
       
    48      * render compiled template code
       
    49      *
       
    50      * @param Smarty_Internal_Template $_template
       
    51      *
       
    52      * @return string
       
    53      * @throws Exception
       
    54      */
       
    55     public function render($_template) {
       
    56         $level = ob_get_level();
       
    57         ob_start();
       
    58         try {
       
    59             $this->renderUncompiled($_template->source, $_template);
       
    60             return ob_get_clean();
       
    61         } catch (Exception $e) {
       
    62             while (ob_get_level() > $level) {
       
    63                 ob_end_clean();
       
    64             }
       
    65             throw $e;
       
    66         }
       
    67     }
       
    68 }