diff options
Diffstat (limited to 'lib/smarty3/sysplugins/smarty_internal_resource_php.php')
-rw-r--r-- | lib/smarty3/sysplugins/smarty_internal_resource_php.php | 81 |
1 files changed, 45 insertions, 36 deletions
diff --git a/lib/smarty3/sysplugins/smarty_internal_resource_php.php b/lib/smarty3/sysplugins/smarty_internal_resource_php.php index 3cff781..9d98ae1 100644 --- a/lib/smarty3/sysplugins/smarty_internal_resource_php.php +++ b/lib/smarty3/sysplugins/smarty_internal_resource_php.php @@ -19,31 +19,31 @@ class Smarty_Internal_Resource_Php extends Smarty_Internal_Resource_File public $uncompiled = true; /** - * container for short_open_tag directive's value before executing PHP templates + * Resource does implement populateCompiledFilepath() method * - * @var string + * @var bool */ - protected $short_open_tag; + public $hasCompiledHandler = true; /** - * Resource does implement populateCompiledFilepath() method + * container for short_open_tag directive's value before executing PHP templates * - * @var bool + * @var string */ - public $hasCompiledHandler = true; + protected $short_open_tag; /** * Create a new PHP Resource */ public function __construct() { - $this->short_open_tag = ini_get('short_open_tag'); + $this->short_open_tag = function_exists('ini_get') ? ini_get('short_open_tag') : 1; } /** * Load template's source from file into current template object * - * @param Smarty_Template_Source $source source object + * @param Smarty_Template_Source $source source object * * @return string template source * @throws SmartyException if source cannot be loaded @@ -57,10 +57,29 @@ class Smarty_Internal_Resource_Php extends Smarty_Internal_Resource_File } /** + * 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 = $_template->source->filepath; + $compiled->timestamp = $_template->source->timestamp; + $compiled->exists = $_template->source->exists; + $compiled->file_dependency[ $_template->source->uid ] = + array( + $compiled->filepath, + $compiled->timestamp, + $_template->source->type, + ); + } + + /** * Render and output the template (without using the compiler) * - * @param Smarty_Template_Source $source source object - * @param Smarty_Internal_Template $_template template object + * @param Smarty_Template_Source $source source object + * @param Smarty_Internal_Template $_template template object * * @return void * @throws SmartyException if template cannot be loaded or allow_php_templates is disabled @@ -68,40 +87,30 @@ class Smarty_Internal_Resource_Php extends Smarty_Internal_Resource_File public function renderUncompiled(Smarty_Template_Source $source, Smarty_Internal_Template $_template) { if (!$source->smarty->allow_php_templates) { - throw new SmartyException("PHP templates are disabled"); + throw new SmartyException('PHP templates are disabled'); } if (!$source->exists) { - $parentIsTpl = isset($this->parent) && $this->parent->_objType == 2; - throw new SmartyException("Unable to load template {$source->type} '{$source->name}'" . - ($parentIsTpl ? " in '{$this->parent->template_resource}'" : '')); + throw new SmartyException( + "Unable to load template '{$source->type}:{$source->name}'" . + ($_template->_isSubTpl() ? " in '{$_template->parent->template_resource}'" : '') + ); } - // prepare variables extract($_template->getTemplateVars()); - // include PHP template with short open tags enabled - ini_set('short_open_tag', '1'); - /** @var Smarty_Internal_Template $_smarty_template + if (function_exists('ini_set')) { + ini_set('short_open_tag', '1'); + } + /** + * + * + * @var Smarty_Internal_Template $_smarty_template * used in included file */ $_smarty_template = $_template; - include($source->filepath); - ini_set('short_open_tag', $this->short_open_tag); - } - - /** - * 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 = $_template->source->filepath; - $compiled->timestamp = $_template->source->timestamp; - $compiled->exists = $_template->source->exists; - $compiled->file_dependency[ $_template->source->uid ] = - array($compiled->filepath, $compiled->timestamp, - $_template->source->type,); + include $source->filepath; + if (function_exists('ini_set')) { + ini_set('short_open_tag', $this->short_open_tag); + } } } |