forked from bruno/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.0 KiB
35 lines
1.0 KiB
<?php |
|
/** |
|
* Smarty plugin |
|
* |
|
* @package Smarty |
|
* @subpackage PluginsShared |
|
*/ |
|
/** |
|
* evaluate compiler parameter |
|
* |
|
* @param array $params parameter array as given to the compiler function |
|
* @param integer $index array index of the parameter to convert |
|
* @param mixed $default value to be returned if the parameter is not present |
|
* |
|
* @return mixed evaluated value of parameter or $default |
|
* @throws SmartyException if parameter is not a literal (but an expression, variable, …) |
|
* @author Rodney Rehm |
|
*/ |
|
function smarty_literal_compiler_param($params, $index, $default = null) |
|
{ |
|
// not set, go default |
|
if (!isset($params[ $index ])) { |
|
return $default; |
|
} |
|
// test if param is a literal |
|
if (!preg_match('/^([\'"]?)[a-zA-Z0-9-]+(\\1)$/', $params[ $index ])) { |
|
throw new SmartyException( |
|
'$param[' . $index . |
|
'] is not a literal and is thus not evaluatable at compile time' |
|
); |
|
} |
|
$t = null; |
|
eval("\$t = " . $params[ $index ] . ";"); |
|
return $t; |
|
}
|
|
|