Code

Readded smarty
[gosa.git] / gosa-core / include / smarty / plugins / shared.literal_compiler_param.php
1 <?php
2 /**
3  * Smarty plugin
4  *
5  * @package Smarty
6  * @subpackage PluginsShared
7  */
9 /**
10  * evaluate compiler parameter
11  *
12  * @param array   $params  paramter array as given to the compiler function
13  * @param integer $index   array index of the paramter to convert
14  * @param mixed   $default value to be returned if the paramter is not present
15  * @return mixed evaluated value of paramter or $default
16  * @throws SmartyException if paramter is not a literal (but an expression, variable, …)
17  * @author Rodney Rehm
18  */
19 function smarty_literal_compiler_param($params, $index, $default=null)
20 {
21     // not set, go default
22     if (!isset($params[$index])) {
23         return $default;
24     }
25     // test if param is a literal
26     if (!preg_match('/^([\'"]?)[a-zA-Z0-9]+(\\1)$/', $params[$index])) {
27         throw new SmartyException('$param[' . $index . '] is not a literal and is thus not evaluatable at compile time');
28     }
30     $t = null;
31     eval("\$t = " . $params[$index] . ";");
32     return $t;
33 }