diff options
| author | Nathan Kinkade <kinkade@measurementlab.net> | 2019-08-27 13:05:48 -0600 |
|---|---|---|
| committer | Nathan Kinkade <kinkade@measurementlab.net> | 2019-08-27 13:05:48 -0600 |
| commit | a6c179d56973e382205c8583568d635c37f814c8 (patch) | |
| tree | d144141439adac21f0c1bc2fc2caa85fd8135039 /lib/smarty-3.1.33/plugins/shared.literal_compiler_param.php | |
| parent | 34972193073432105b8659407af5a914b3686f81 (diff) | |
Updates smarty to v3.1.33.
Diffstat (limited to 'lib/smarty-3.1.33/plugins/shared.literal_compiler_param.php')
| -rw-r--r-- | lib/smarty-3.1.33/plugins/shared.literal_compiler_param.php | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/smarty-3.1.33/plugins/shared.literal_compiler_param.php b/lib/smarty-3.1.33/plugins/shared.literal_compiler_param.php new file mode 100644 index 0000000..65caf03 --- /dev/null +++ b/lib/smarty-3.1.33/plugins/shared.literal_compiler_param.php @@ -0,0 +1,35 @@ +<?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; +} |
