mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-11-03 22:01:36 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * Smarty Internal Undefined
 | 
						|
 *
 | 
						|
 * Class to handle undefined method calls or calls to obsolete runtime extensions
 | 
						|
 *
 | 
						|
 * @package    Smarty
 | 
						|
 * @subpackage PluginsInternal
 | 
						|
 * @author     Uwe Tews
 | 
						|
 */
 | 
						|
class Smarty_Internal_Undefined
 | 
						|
{
 | 
						|
 | 
						|
    /**
 | 
						|
     * Name of undefined extension class
 | 
						|
     *
 | 
						|
     * @var string|null
 | 
						|
     */
 | 
						|
    public $class = null;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Smarty_Internal_Undefined constructor.
 | 
						|
     *
 | 
						|
     * @param null|string $class name of undefined extension class
 | 
						|
     */
 | 
						|
    public function __construct($class = null)
 | 
						|
    {
 | 
						|
        $this->class = $class;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Wrapper for obsolete class Smarty_Internal_Runtime_ValidateCompiled
 | 
						|
     *
 | 
						|
     * @param  \Smarty_Internal_Template $tpl
 | 
						|
     * @param  array                     $properties special template properties
 | 
						|
     * @param  bool                      $cache      flag if called from cache file
 | 
						|
     *
 | 
						|
     * @return bool false
 | 
						|
     */
 | 
						|
    public function decodeProperties(Smarty_Internal_Template $tpl, $properties, $cache = false)
 | 
						|
    {
 | 
						|
        if ($cache) {
 | 
						|
            $tpl->cached->valid = false;
 | 
						|
        } else {
 | 
						|
            $tpl->mustCompile = true;
 | 
						|
        }
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Call error handler for undefined method
 | 
						|
     *
 | 
						|
     * @param string $name unknown method-name
 | 
						|
     * @param array  $args argument array
 | 
						|
     *
 | 
						|
     * @return mixed
 | 
						|
     * @throws SmartyException
 | 
						|
     */
 | 
						|
    public function __call($name, $args)
 | 
						|
    {
 | 
						|
        if (isset($this->class)) {
 | 
						|
            throw new SmartyException("undefined extension class '{$this->class}'");
 | 
						|
        } else {
 | 
						|
            throw new SmartyException(get_class($args[ 0 ]) . "->{$name}() undefined method");
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |