From 6fc07742f8fca9d32db23243d374ea27e8ee4c1e Mon Sep 17 00:00:00 2001 From: rvelices Date: Thu, 20 Jun 2013 03:38:47 +0000 Subject: smarty 3 - first pass for tests git-svn-id: http://piwigo.org/svn/trunk@23384 68402e56-0260-453c-a942-63ccdbb3a9ee --- .../smarty_internal_resource_registered.php | 95 ++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 include/smarty/libs/sysplugins/smarty_internal_resource_registered.php (limited to 'include/smarty/libs/sysplugins/smarty_internal_resource_registered.php') diff --git a/include/smarty/libs/sysplugins/smarty_internal_resource_registered.php b/include/smarty/libs/sysplugins/smarty_internal_resource_registered.php new file mode 100644 index 000000000..44497b922 --- /dev/null +++ b/include/smarty/libs/sysplugins/smarty_internal_resource_registered.php @@ -0,0 +1,95 @@ +filepath = $source->type . ':' . $source->name; + $source->uid = sha1($source->filepath); + if ($source->smarty->compile_check) { + $source->timestamp = $this->getTemplateTimestamp($source); + $source->exists = !!$source->timestamp; + } + } + + /** + * populate Source Object with timestamp and exists from Resource + * + * @param Smarty_Template_Source $source source object + * @return void + */ + public function populateTimestamp(Smarty_Template_Source $source) + { + $source->timestamp = $this->getTemplateTimestamp($source); + $source->exists = !!$source->timestamp; + } + + /** + * Get timestamp (epoch) the template source was modified + * + * @param Smarty_Template_Source $source source object + * @return integer|boolean timestamp (epoch) the template was modified, false if resources has no timestamp + */ + public function getTemplateTimestamp(Smarty_Template_Source $source) + { + // return timestamp + $time_stamp = false; + call_user_func_array($source->smarty->registered_resources[$source->type][0][1], array($source->name, &$time_stamp, $source->smarty)); + return is_numeric($time_stamp) ? (int) $time_stamp : $time_stamp; + } + + /** + * Load template's source by invoking the registered callback 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) + { + // return template string + $t = call_user_func_array($source->smarty->registered_resources[$source->type][0][0], array($source->name, &$source->content, $source->smarty)); + if (is_bool($t) && !$t) { + throw new SmartyException("Unable to read template {$source->type} '{$source->name}'"); + } + return $source->content; + } + + /** + * Determine basename for compiled filename + * + * @param Smarty_Template_Source $source source object + * @return string resource's basename + */ + protected function getBasename(Smarty_Template_Source $source) + { + return basename($source->name); + } + +} + +?> \ No newline at end of file -- cgit v1.2.3