summaryrefslogtreecommitdiffstats
path: root/frontends/php/include/triggers.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/php/include/triggers.inc.php')
-rw-r--r--frontends/php/include/triggers.inc.php32
1 files changed, 21 insertions, 11 deletions
diff --git a/frontends/php/include/triggers.inc.php b/frontends/php/include/triggers.inc.php
index 858622f1..7bd3ad4f 100644
--- a/frontends/php/include/triggers.inc.php
+++ b/frontends/php/include/triggers.inc.php
@@ -181,7 +181,7 @@
$allowed_functions['sum'] = 'ticks';
$allowed_functions['last'] = 'float';
$allowed_functions['diff'] = 'float';
- $allowed_functions['count'] = 'float';
+ $allowed_functions['count'] = array('float', '');
$allowed_functions['prev'] = 'float';
$allowed_functions['change'] = 'float';
$allowed_functions['abschange'] = 'float';
@@ -240,18 +240,28 @@
return -1;
}
- if( 'float' == $allowed_functions[$function]
- && (validate_float($parameter)!=0) )
- {
- error('['.$parameter.'] is not a float');
- return -1;
- }
+ if( !is_array($allowed_functions[$function]) )
+ $allowed_functions[$function] = array($allowed_functions[$function]);
+
+ $parameter = split(',', $parameter, count($allowed_functions[$function]));
- if( 'ticks' == $allowed_functions[$function]
- && (validate_ticks($parameter)!=0) )
+ foreach($allowed_functions[$function] as $pid => $params)
{
- error('['.$parameter.'] is not a float');
- return -1;
+ if(!isset($parameter[$pid])) continue;
+
+ if( 'float' == $params
+ && (validate_float($parameter[$pid])!=0) )
+ {
+ error('['.$parameter[$pid].'] is not a float');
+ return -1;
+ }
+
+ if( 'ticks' == $params
+ && (validate_ticks($parameter[$pid])!=0) )
+ {
+ error('['.$parameter[$pid].'] is not a float');
+ return -1;
+ }
}
}
# Process macros