Code

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