3 * Smarty Internal Plugin Resource String
6 * @subpackage TemplateResources
12 * Smarty Internal Plugin Resource String
13 * Implements the strings as resource for Smarty template
14 * {@internal unlike eval-resources the compiled state of string-resources is saved for subsequent access}}
17 * @subpackage TemplateResources
19 class Smarty_Internal_Resource_String extends Smarty_Resource
22 * populate Source Object with meta data from Resource
24 * @param Smarty_Template_Source $source source object
25 * @param Smarty_Internal_Template $_template template object
29 public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
31 $source->uid = $source->filepath = sha1($source->name);
32 $source->timestamp = 0;
33 $source->exists = true;
37 * Load template's source from $resource_name into current template object
39 * @uses decode() to decode base64 and urlencoded template_resources
41 * @param Smarty_Template_Source $source source object
43 * @return string template source
45 public function getContent(Smarty_Template_Source $source)
47 return $this->decode($source->name);
51 * decode base64 and urlencode
53 * @param string $string template_resource to decode
55 * @return string decoded template_resource
57 protected function decode($string)
59 // decode if specified
60 if (($pos = strpos($string, ':')) !== false) {
61 if (!strncmp($string, 'base64', 6)) {
62 return base64_decode(substr($string, 7));
63 } elseif (!strncmp($string, 'urlencode', 9)) {
64 return urldecode(substr($string, 10));
72 * modify resource_name according to resource handlers specifications
74 * @param Smarty $smarty Smarty instance
75 * @param string $resource_name resource_name to make unique
76 * @param boolean $is_config flag for config resource
78 * @return string unique resource name
80 protected function buildUniqueResourceName(Smarty $smarty, $resource_name, $is_config = false)
82 return get_class($this) . '#' . $this->decode($resource_name);
86 * Determine basename for compiled filename
87 * Always returns an empty string.
89 * @param Smarty_Template_Source $source source object
91 * @return string resource's basename
93 protected function getBasename(Smarty_Template_Source $source)