73 lines
1.8 KiB
PHP
73 lines
1.8 KiB
PHP
|
<?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;
|
||
|
|
||
|
/**
|
||
|
* 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;
|
||
|
}
|
||
|
}
|
||
|
}
|