ed60292042fc8cd395117f2eaae538e1f774ab12
[GitHub/Stricted/Domain-Control-Panel.git] / lib / api / smarty / sysplugins / smarty_internal_extension_defaulttemplatehandler.php
1 <?php
2 /**
3 * Smarty Resource Extension
4 *
5 * @package Smarty
6 * @subpackage TemplateResources
7 * @author Uwe Tews
8 */
9
10 /**
11 * Smarty Resource Extension
12 * Default template and config file handling
13 *
14 * @package Smarty
15 * @subpackage TemplateResources
16 */
17 class Smarty_Internal_Extension_DefaultTemplateHandler
18 {
19
20 /**
21 * get default content from template of config resource handler
22 *
23 * @param Smarty_Internal_Template $_template
24 * @param Smarty_Internal_Template_Source $source
25 * @param Smarty_Resource $resObj
26 */
27 static function _getDefault(Smarty_Internal_Template $_template, &$source, &$resObj)
28 {
29 if ($source->isConfig) {
30 $default_handler = $_template->smarty->default_config_handler_func;
31 } else {
32 $default_handler = $_template->smarty->default_template_handler_func;
33 }
34 $_content = $_timestamp = null;
35 $_return = call_user_func_array($default_handler,
36 array($source->type, $source->name, &$_content, &$_timestamp, $source->smarty));
37 if (is_string($_return)) {
38 $source->exists = is_file($_return);
39 if ($source->exists) {
40 $source->timestamp = filemtime($_return);
41 }
42 $source->filepath = $_return;
43 } elseif ($_return === true) {
44 $source->content = $_content;
45 $source->timestamp = $_timestamp;
46 $source->exists = true;
47 $source->recompiled = true;
48 $source->filepath = false;
49 }
50 }
51
52 /**
53 * register template default handler
54 *
55 * @param Smarty $smarty
56 * @param mixed $callback
57 *
58 * @throws SmartyException
59 */
60 static function registerDefaultTemplateHandler(Smarty $smarty, $callback)
61 {
62 if (is_callable($callback)) {
63 $smarty->default_template_handler_func = $callback;
64 } else {
65 throw new SmartyException("Default template handler not callable");
66 }
67 }
68
69 /**
70 * register config default handler
71 *
72 * @param Smarty $smarty
73 * @param mixed $callback
74 *
75 * @throws SmartyException
76 */
77 static function registerDefaultConfigHandler(Smarty $smarty, $callback)
78 {
79 if (is_callable($callback)) {
80 $smarty->default_config_handler_func = $callback;
81 } else {
82 throw new SmartyException("Default config handler not callable");
83 }
84 }
85 }