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(realpath($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); } }