A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			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.
		
		
		
		
			
				
					37 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					37 lines
				
				1.0 KiB
			| 
								 
											7 years ago
										 
									 | 
							
								<?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;
							 | 
						||
| 
								 | 
							
								}
							 |