1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/piwigo_ynh.git synced 2024-09-03 20:06:03 +02:00
piwigo_ynh/sources/include/smarty/libs/plugins/shared.literal_compiler_param.php

36 lines
1,010 B
PHP
Raw Normal View History

2014-07-06 13:21:10 +02:00
<?php
/**
* Smarty plugin
*
2016-08-27 21:53:29 +02:00
* @package Smarty
2014-07-06 13:21:10 +02:00
* @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
2016-08-27 21:53:29 +02:00
*
2014-07-06 13:21:10 +02:00
* @return mixed evaluated value of parameter or $default
* @throws SmartyException if parameter is not a literal (but an expression, variable, )
* @author Rodney Rehm
*/
2016-08-27 21:53:29 +02:00
function smarty_literal_compiler_param($params, $index, $default = null)
2014-07-06 13:21:10 +02:00
{
// not set, go default
if (!isset($params[$index])) {
return $default;
}
// test if param is a literal
2016-08-27 21:53:29 +02:00
if (!preg_match('/^([\'"]?)[a-zA-Z0-9-]+(\\1)$/', $params[$index])) {
2014-07-06 13:21:10 +02:00
throw new SmartyException('$param[' . $index . '] is not a literal and is thus not evaluatable at compile time');
}
$t = null;
eval("\$t = " . $params[$index] . ";");
2016-08-27 21:53:29 +02:00
2014-07-06 13:21:10 +02:00
return $t;
}