diff options
author | Vasudev Kamath <kamathvasudev@gmail.com> | 2012-07-06 22:47:27 +0530 |
---|---|---|
committer | Vasudev Kamath <kamathvasudev@gmail.com> | 2012-07-06 22:47:27 +0530 |
commit | ba4db236ecff1ffdb56adc2715b3f53515f8cb34 (patch) | |
tree | f0b9928aade8aab95d1608890fde1918ce163754 /library/Smarty/libs/sysplugins/smarty_internal_resource_file.php | |
parent | 6e4760dd9c512147309b5e4a98d25216610f81da (diff) | |
parent | a122fecf50d06856a2ada8b564f711fb52c327f0 (diff) | |
download | volse-hubzilla-ba4db236ecff1ffdb56adc2715b3f53515f8cb34.tar.gz volse-hubzilla-ba4db236ecff1ffdb56adc2715b3f53515f8cb34.tar.bz2 volse-hubzilla-ba4db236ecff1ffdb56adc2715b3f53515f8cb34.zip |
Merge branch 'master' of git://github.com/friendica/friendica
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_resource_file.php')
-rw-r--r-- | library/Smarty/libs/sysplugins/smarty_internal_resource_file.php | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_resource_file.php b/library/Smarty/libs/sysplugins/smarty_internal_resource_file.php new file mode 100644 index 000000000..48b391d20 --- /dev/null +++ b/library/Smarty/libs/sysplugins/smarty_internal_resource_file.php @@ -0,0 +1,90 @@ +<?php +/** + * Smarty Internal Plugin Resource File + * + * @package Smarty + * @subpackage TemplateResources + * @author Uwe Tews + * @author Rodney Rehm + */ + +/** + * Smarty Internal Plugin Resource File + * + * Implements the file system as resource for Smarty templates + * + * @package Smarty + * @subpackage TemplateResources + */ +class Smarty_Internal_Resource_File extends Smarty_Resource { + + /** + * populate Source Object with meta data from Resource + * + * @param Smarty_Template_Source $source source object + * @param Smarty_Internal_Template $_template template object + */ + public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null) + { + $source->filepath = $this->buildFilepath($source, $_template); + + if ($source->filepath !== false) { + if (is_object($source->smarty->security_policy)) { + $source->smarty->security_policy->isTrustedResourceDir($source->filepath); + } + + $source->uid = sha1($source->filepath); + if ($source->smarty->compile_check && !isset($source->timestamp)) { + $source->timestamp = @filemtime($source->filepath); + $source->exists = !!$source->timestamp; + } + } + } + + /** + * populate Source Object with timestamp and exists from Resource + * + * @param Smarty_Template_Source $source source object + */ + public function populateTimestamp(Smarty_Template_Source $source) + { + $source->timestamp = @filemtime($source->filepath); + $source->exists = !!$source->timestamp; + } + + /** + * 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->timestamp) { + return file_get_contents($source->filepath); + } + if ($source instanceof Smarty_Config_Source) { + throw new SmartyException("Unable to read config {$source->type} '{$source->name}'"); + } + throw new SmartyException("Unable to read template {$source->type} '{$source->name}'"); + } + + /** + * Determine basename for compiled filename + * + * @param Smarty_Template_Source $source source object + * @return string resource's basename + */ + public function getBasename(Smarty_Template_Source $source) + { + $_file = $source->name; + if (($_pos = strpos($_file, ']')) !== false) { + $_file = substr($_file, $_pos + 1); + } + return basename($_file); + } + +} + +?>
\ No newline at end of file |