Initial repo created
[timetracker.git] / WEB-INF / lib / smarty / sysplugins / smarty_internal_resource_registered.php
1 <?php
2
3 /**
4  * Smarty Internal Plugin Resource Registered
5  * 
6  * Implements the registered resource for Smarty template
7  * 
8  * @package Smarty
9  * @subpackage TemplateResources
10  * @author Uwe Tews 
11  */
12  
13 /**
14  * Smarty Internal Plugin Resource Registered
15  */
16 class Smarty_Internal_Resource_Registered {
17     public function __construct($template, $resource_type = null)
18     {
19         $this->smarty = $template->smarty;
20         if (isset($resource_type)) {
21                 $template->smarty->registerResource($resource_type,
22                         array("smarty_resource_{$resource_type}_source",
23                         "smarty_resource_{$resource_type}_timestamp",
24                         "smarty_resource_{$resource_type}_secure",
25                         "smarty_resource_{$resource_type}_trusted"));
26         }
27     } 
28     // classes used for compiling Smarty templates from file resource
29     public $compiler_class = 'Smarty_Internal_SmartyTemplateCompiler';
30     public $template_lexer_class = 'Smarty_Internal_Templatelexer';
31     public $template_parser_class = 'Smarty_Internal_Templateparser';
32     // properties
33     public $usesCompiler = true;
34     public $isEvaluated = false;
35
36     /**
37      * Return flag if template source is existing
38      * 
39      * @return boolean true
40      */
41     public function isExisting($_template)
42     {
43         if (is_integer($_template->getTemplateTimestamp())) {
44             return true;
45         } else {
46             return false;
47         } 
48     } 
49     /**
50      * Get filepath to template source
51      * 
52      * @param object $_template template object
53      * @return string return 'string' as template source is not a file
54      */
55     public function getTemplateFilepath($_template)
56     { 
57         $_filepath = $_template->resource_type .':'.$_template->resource_name;
58         $_template->templateUid = sha1($_filepath);
59         return $_filepath;
60     } 
61
62     /**
63      * Get timestamp of template source
64      * 
65      * @param object $_template template object
66      * @return int  timestamp
67      */
68     public function getTemplateTimestamp($_template)
69     { 
70         // return timestamp
71         $time_stamp = false;
72         call_user_func_array($this->smarty->registered_resources[$_template->resource_type][0][1],
73             array($_template->resource_name, &$time_stamp, $this->smarty));
74         return is_numeric($time_stamp) ? (int)$time_stamp : $time_stamp;
75     }
76      
77     /**
78      * Get timestamp of template source by type and name
79      * 
80      * @param object $_template template object
81      * @return int  timestamp
82      */
83     public function getTemplateTimestampTypeName($_resource_type, $_resource_name)
84     { 
85         // return timestamp
86         $time_stamp = false;
87         call_user_func_array($this->smarty->registered_resources[$_resource_type][0][1],
88             array($_resource_name, &$time_stamp, $this->smarty));
89         return is_numeric($time_stamp) ? (int)$time_stamp : $time_stamp;
90     } 
91
92     /**
93      * Retuen template source from resource name
94      * 
95      * @param object $_template template object
96      * @return string content of template source
97      */
98     public function getTemplateSource($_template)
99     { 
100         // return template string
101         return call_user_func_array($this->smarty->registered_resources[$_template->resource_type][0][0],
102             array($_template->resource_name, &$_template->template_source, $this->smarty));
103     } 
104
105     /**
106      * Get filepath to compiled template
107      * 
108      * @param object $_template template object
109      * @return boolean return false as compiled template is not stored
110      */
111     public function getCompiledFilepath($_template)
112     { 
113         $_compile_id =  isset($_template->compile_id) ? preg_replace('![^\w\|]+!','_',$_template->compile_id) : null;
114         // calculate Uid if not already done
115         if ($_template->templateUid == '') {
116             $_template->getTemplateFilepath();
117         } 
118         $_filepath = $_template->templateUid; 
119         // if use_sub_dirs, break file into directories
120         if ($_template->smarty->use_sub_dirs) {
121             $_filepath = substr($_filepath, 0, 2) . DS
122              . substr($_filepath, 2, 2) . DS
123              . substr($_filepath, 4, 2) . DS
124              . $_filepath;
125         } 
126         $_compile_dir_sep = $_template->smarty->use_sub_dirs ? DS : '^';
127         if (isset($_compile_id)) {
128             $_filepath = $_compile_id . $_compile_dir_sep . $_filepath;
129         } 
130         if ($_template->caching) {
131             $_cache = '.cache';
132         } else {
133             $_cache = '';
134         } 
135         $_compile_dir = $_template->smarty->compile_dir;
136         if (strpos('/\\', substr($_compile_dir, -1)) === false) {
137             $_compile_dir .= DS;
138         } 
139         return $_compile_dir . $_filepath . '.' . $_template->resource_type . '.' . basename($_template->resource_name) . $_cache . '.php';
140     } 
141
142
143 ?>