packages/ssoinabox-webui/root/usr/local/share/ssoinabox/htdocs/includes/smarty/plugins/shared.literal_compiler_param.php
changeset 0 3906ca745819
equal deleted inserted replaced
-1:000000000000 0:3906ca745819
       
     1 <?php
       
     2 /**
       
     3  * Smarty plugin
       
     4  *
       
     5  * @package Smarty
       
     6  * @subpackage PluginsShared
       
     7  */
       
     8 
       
     9 /**
       
    10  * evaluate compiler parameter
       
    11  *
       
    12  * @param array   $params  parameter array as given to the compiler function
       
    13  * @param integer $index   array index of the parameter to convert
       
    14  * @param mixed   $default value to be returned if the parameter is not present
       
    15  * @return mixed evaluated value of parameter or $default
       
    16  * @throws SmartyException if parameter 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     }
       
    29 
       
    30     $t = null;
       
    31     eval("\$t = " . $params[$index] . ";");
       
    32     return $t;
       
    33 }