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");
|
||
|
}
|
||
|
}
|
||
|
}
|