]> git.mxchange.org Git - friendica.git/blob - library/Smarty/libs/sysplugins/smarty_internal_resource_registered.php
networkheader: do css work the other supported themes
[friendica.git] / library / Smarty / libs / sysplugins / smarty_internal_resource_registered.php
1 <?php
2 /**
3  * Smarty Internal Plugin Resource Registered
4  *
5  * @package    Smarty
6  * @subpackage TemplateResources
7  * @author     Uwe Tews
8  * @author     Rodney Rehm
9  */
10
11 /**
12  * Smarty Internal Plugin Resource Registered
13  * Implements the registered resource for Smarty template
14  *
15  * @package    Smarty
16  * @subpackage TemplateResources
17  * @deprecated
18  */
19 class Smarty_Internal_Resource_Registered extends Smarty_Resource
20 {
21     /**
22      * populate Source Object with meta data from Resource
23      *
24      * @param  Smarty_Template_Source   $source    source object
25      * @param  Smarty_Internal_Template $_template template object
26      *
27      * @return void
28      */
29     public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
30     {
31         $source->filepath = $source->type . ':' . $source->name;
32         $source->uid = sha1($source->filepath);
33         if ($source->smarty->compile_check) {
34             $source->timestamp = $this->getTemplateTimestamp($source);
35             $source->exists = !!$source->timestamp;
36         }
37     }
38
39     /**
40      * populate Source Object with timestamp and exists from Resource
41      *
42      * @param  Smarty_Template_Source $source source object
43      *
44      * @return void
45      */
46     public function populateTimestamp(Smarty_Template_Source $source)
47     {
48         $source->timestamp = $this->getTemplateTimestamp($source);
49         $source->exists = !!$source->timestamp;
50     }
51
52     /**
53      * Get timestamp (epoch) the template source was modified
54      *
55      * @param  Smarty_Template_Source $source source object
56      *
57      * @return integer|boolean        timestamp (epoch) the template was modified, false if resources has no timestamp
58      */
59     public function getTemplateTimestamp(Smarty_Template_Source $source)
60     {
61         // return timestamp
62         $time_stamp = false;
63         call_user_func_array($source->smarty->registered_resources[$source->type][0][1], array($source->name, &$time_stamp, $source->smarty));
64
65         return is_numeric($time_stamp) ? (int) $time_stamp : $time_stamp;
66     }
67
68     /**
69      * Load template's source by invoking the registered callback into current template object
70      *
71      * @param  Smarty_Template_Source $source source object
72      *
73      * @return string                 template source
74      * @throws SmartyException        if source cannot be loaded
75      */
76     public function getContent(Smarty_Template_Source $source)
77     {
78         // return template string
79         $t = call_user_func_array($source->smarty->registered_resources[$source->type][0][0], array($source->name, &$source->content, $source->smarty));
80         if (is_bool($t) && !$t) {
81             throw new SmartyException("Unable to read template {$source->type} '{$source->name}'");
82         }
83
84         return $source->content;
85     }
86
87     /**
88      * Determine basename for compiled filename
89      *
90      * @param  Smarty_Template_Source $source source object
91      *
92      * @return string                 resource's basename
93      */
94     protected function getBasename(Smarty_Template_Source $source)
95     {
96         return basename($source->name);
97     }
98 }