12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?php
- /**
- * Smarty Resource Plugin
- *
- * @package Smarty
- * @subpackage TemplateResources
- * @author Rodney Rehm
- */
-
- /**
- * Smarty Resource Plugin
- * Base implementation for resource plugins that don't use the compiler
- *
- * @package Smarty
- * @subpackage TemplateResources
- */
- abstract class Smarty_Resource_Uncompiled extends Smarty_Resource
- {
- /**
- * Flag that it's an uncompiled resource
- *
- * @var bool
- */
- public $uncompiled = true;
-
- /**
- * Resource does implement populateCompiledFilepath() method
- *
- * @var bool
- */
- public $hasCompiledHandler = true;
-
- /**
- * Render and output the template (without using the compiler)
- *
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
- *
- * @throws SmartyException on failure
- */
- abstract public function renderUncompiled(Smarty_Template_Source $source, Smarty_Internal_Template $_template);
-
- /**
- * populate compiled object with compiled filepath
- *
- * @param Smarty_Template_Compiled $compiled compiled object
- * @param Smarty_Internal_Template $_template template object (is ignored)
- */
- public function populateCompiledFilepath(Smarty_Template_Compiled $compiled, Smarty_Internal_Template $_template)
- {
- $compiled->filepath = false;
- $compiled->timestamp = false;
- $compiled->exists = false;
- }
-
- /**
- * render compiled template code
- *
- * @param Smarty_Internal_Template $_template
- *
- * @return string
- * @throws Exception
- */
- public function render($_template)
- {
- $level = ob_get_level();
- ob_start();
- try {
- $this->renderUncompiled($_template->source, $_template);
- return ob_get_clean();
- }
- catch (Exception $e) {
- while (ob_get_level() > $level) {
- ob_end_clean();
- }
- throw $e;
- }
- }
- }
|