Subversion Repositories ALCASAR

Rev

Details | Last modification | View Log

Rev Author Line No. Line
2809 rexy 1
<?php
2
 
3
/**
4
 * Smarty Internal Undefined
5
 *
6
 * Class to handle undefined method calls or calls to obsolete runtime extensions
7
 *
8
 * @package    Smarty
9
 * @subpackage PluginsInternal
10
 * @author     Uwe Tews
11
 */
12
class Smarty_Internal_Undefined
13
{
14
    /**
15
     * Name of undefined extension class
16
     *
17
     * @var string|null
18
     */
19
    public $class = null;
20
 
21
    /**
22
     * Smarty_Internal_Undefined constructor.
23
     *
24
     * @param null|string $class name of undefined extension class
25
     */
26
    public function __construct($class = null)
27
    {
28
        $this->class = $class;
29
    }
30
 
31
    /**
32
     * Wrapper for obsolete class Smarty_Internal_Runtime_ValidateCompiled
33
     *
34
     * @param \Smarty_Internal_Template $tpl
35
     * @param array                     $properties special template properties
36
     * @param bool                      $cache      flag if called from cache file
37
     *
38
     * @return bool false
39
     */
40
    public function decodeProperties(Smarty_Internal_Template $tpl, $properties, $cache = false)
41
    {
42
        if ($cache) {
43
            $tpl->cached->valid = false;
44
        } else {
45
            $tpl->mustCompile = true;
46
        }
47
        return false;
48
    }
49
 
50
    /**
51
     * Call error handler for undefined method
52
     *
53
     * @param string $name unknown method-name
54
     * @param array  $args argument array
55
     *
56
     * @return mixed
57
     * @throws SmartyException
58
     */
59
    public function __call($name, $args)
60
    {
61
        if (isset($this->class)) {
62
            throw new SmartyException("undefined extension class '{$this->class}'");
63
        } else {
64
            throw new SmartyException(get_class($args[ 0 ]) . "->{$name}() undefined method");
65
        }
66
    }
67
}