1234567891011121314151617181920212223242526272829303132333435 |
- <?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;
- }
|