diff options
| author | Nathan Kinkade <kinkade@measurementlab.net> | 2019-08-27 13:05:48 -0600 |
|---|---|---|
| committer | Nathan Kinkade <kinkade@measurementlab.net> | 2019-08-27 13:05:48 -0600 |
| commit | a6c179d56973e382205c8583568d635c37f814c8 (patch) | |
| tree | d144141439adac21f0c1bc2fc2caa85fd8135039 /lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php | |
| parent | 34972193073432105b8659407af5a914b3686f81 (diff) | |
Updates smarty to v3.1.33.
Diffstat (limited to 'lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php')
| -rw-r--r-- | lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php b/lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php new file mode 100644 index 0000000..9d98ae1 --- /dev/null +++ b/lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php @@ -0,0 +1,116 @@ +<?php + +/** + * Smarty Internal Plugin Resource PHP + * Implements the file system as resource for PHP templates + * + * @package Smarty + * @subpackage TemplateResources + * @author Uwe Tews + * @author Rodney Rehm + */ +class Smarty_Internal_Resource_Php extends Smarty_Internal_Resource_File +{ + /** + * Flag that it's an uncompiled resource + * + * @var bool + */ + public $uncompiled = true; + + /** + * Resource does implement populateCompiledFilepath() method + * + * @var bool + */ + public $hasCompiledHandler = true; + + /** + * container for short_open_tag directive's value before executing PHP templates + * + * @var string + */ + protected $short_open_tag; + + /** + * Create a new PHP Resource + */ + public function __construct() + { + $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 + * + * @return string template source + * @throws SmartyException if source cannot be loaded + */ + public function getContent(Smarty_Template_Source $source) + { + if ($source->exists) { + return ''; + } + throw new SmartyException("Unable to read template {$source->type} '{$source->name}'"); + } + + /** + * 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 + * + * @return void + * @throws SmartyException if template cannot be loaded or allow_php_templates is disabled + */ + public function renderUncompiled(Smarty_Template_Source $source, Smarty_Internal_Template $_template) + { + if (!$source->smarty->allow_php_templates) { + throw new SmartyException('PHP templates are disabled'); + } + if (!$source->exists) { + 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 + 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; + if (function_exists('ini_set')) { + ini_set('short_open_tag', $this->short_open_tag); + } + } +} |
