36 lines
		
	
	
		
			1010 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1010 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?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;
 | |
| }
 |