diff options
Diffstat (limited to 'libs/sysplugins/smarty_internal_resource_string.php')
| -rw-r--r-- | libs/sysplugins/smarty_internal_resource_string.php | 160 |
1 files changed, 51 insertions, 109 deletions
diff --git a/libs/sysplugins/smarty_internal_resource_string.php b/libs/sysplugins/smarty_internal_resource_string.php index 9368f040..45b720d6 100644 --- a/libs/sysplugins/smarty_internal_resource_string.php +++ b/libs/sysplugins/smarty_internal_resource_string.php @@ -1,133 +1,75 @@ <?php - /** * Smarty Internal Plugin Resource String - * - * Implements the strings as resource for Smarty template - * + * * @package Smarty * @subpackage TemplateResources - * @author Uwe Tews + * @author Uwe Tews + * @author Rodney Rehm */ - + /** * Smarty Internal Plugin Resource String + * + * Implements the strings as resource for Smarty template + * + * {@internal unlike eval-resources the compiled state of string-resources is saved for subsequent access}} + * + * @package Smarty + * @subpackage TemplateResources */ -class Smarty_Internal_Resource_String { - public function __construct($smarty) - { - $this->smarty = $smarty; - } - // classes used for compiling Smarty templates from file resource - public $compiler_class = 'Smarty_Internal_SmartyTemplateCompiler'; - public $template_lexer_class = 'Smarty_Internal_Templatelexer'; - public $template_parser_class = 'Smarty_Internal_Templateparser'; - // properties - public $usesCompiler = true; - public $isEvaluated = false; +class Smarty_Internal_Resource_String extends Smarty_Resource { /** - * Return flag if template source is existing - * - * @return boolean true + * populate Source Object with meta data from Resource + * + * @param Smarty_Template_Source $source source object + * @param Smarty_Internal_Template $_template template object + * @return void */ - public function isExisting($template) + public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null) { - return true; - } - - /** - * Get filepath to template source - * - * @param object $_template template object - * @return string return 'string' as template source is not a file - */ - public function getTemplateFilepath($_template) - { - $_template->templateUid = sha1($_template->resource_name); - // no filepath for strings - // return "string" for compiler error messages - return 'string:'; - } + $source->uid = $source->filepath = sha1($source->name); + $source->timestamp = 0; + $source->exists = true; + } /** - * Get timestamp to template source - * - * @param object $_template template object - * @return boolean false as string resources have no timestamp + * Load template's source from $resource_name into current template object + * + * {@internal if source begins with "base64:" or "urlencode:", the source is decoded accordingly}} + * + * @param Smarty_Template_Source $source source object + * @return string template source + * @throws SmartyException if source cannot be loaded */ - public function getTemplateTimestamp($_template) - { - if ($this->isEvaluated) { - //must always be compiled and have no timestamp - return false; - } else { - return 0; + public function getContent(Smarty_Template_Source $source) + { + // decode if specified + if (($pos = strpos($source->name, ':')) !== false) { + if (!strncmp($source->name, 'base64', 6)) { + return base64_decode(substr($source->name, 7)); + } elseif (!strncmp($source->name, 'urlencode', 9)) { + return urldecode(substr($source->name, 10)); + } } - } - - /** - * Get timestamp of template source by type and name - * - * @param object $_template template object - * @return int timestamp (always 0) - */ - public function getTemplateTimestampTypeName($_resource_type, $_resource_name) - { - // return timestamp 0 - return 0; - } + return $source->name; + } /** - * Retuen template source from resource name - * - * @param object $_template template object - * @return string content of template source + * Determine basename for compiled filename + * + * Always returns an empty string. + * + * @param Smarty_Template_Source $source source object + * @return string resource's basename */ - public function getTemplateSource($_template) - { - // return template string - $_template->template_source = $_template->resource_name; - return true; - } - - /** - * Get filepath to compiled template - * - * @param object $_template template object - * @return boolean return false as compiled template is not stored - */ - public function getCompiledFilepath($_template) + protected function getBasename(Smarty_Template_Source $source) { - $_compile_id = isset($_template->compile_id) ? preg_replace('![^\w\|]+!', '_', $_template->compile_id) : null; - // calculate Uid if not already done - if ($_template->templateUid == '') { - $_template->getTemplateFilepath(); - } - $_filepath = $_template->templateUid; - // if use_sub_dirs, break file into directories - if ($_template->smarty->use_sub_dirs) { - $_filepath = substr($_filepath, 0, 2) . DS - . substr($_filepath, 2, 2) . DS - . substr($_filepath, 4, 2) . DS - . $_filepath; - } - $_compile_dir_sep = $_template->smarty->use_sub_dirs ? DS : '^'; - if (isset($_compile_id)) { - $_filepath = $_compile_id . $_compile_dir_sep . $_filepath; - } - if ($_template->caching) { - $_cache = '.cache'; - } else { - $_cache = ''; - } - $_compile_dir = $_template->smarty->compile_dir; - if (strpos('/\\', substr($_compile_dir, -1)) === false) { - $_compile_dir .= DS; - } - return $_compile_dir . $_filepath . '.' . $_template->resource_type . $_cache . '.php'; - } -} + return ''; + } + +} ?>
\ No newline at end of file |
