From d990abf0dfaa626f132689c8447a1ea84c8ce074 Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Sat, 5 Mar 2016 15:49:49 +0100 Subject: [PATCH] IcingaObjectFieldForm: fix proposed fields for... ...commands with multiple arguments in their parameters --- application/forms/IcingaObjectFieldForm.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/application/forms/IcingaObjectFieldForm.php b/application/forms/IcingaObjectFieldForm.php index 91d84236..09c1d483 100644 --- a/application/forms/IcingaObjectFieldForm.php +++ b/application/forms/IcingaObjectFieldForm.php @@ -54,13 +54,16 @@ class IcingaObjectFieldForm extends DirectorObjectForm if ($arg->argument_format === 'string') { $val = $arg->argument_value; // TODO: create var::extractMacros or so - if (preg_match('/^\$[^\$]+\$$/', $val)) { - if (array_key_exists($val, $blacklistedVars)) { - $id = $blacklistedVars[$val]; - $suggestedFields[$id] = $existingFields[$id]; - unset($existingFields[$id]); - } else { - $argumentVars[$val] = $val; + + if (preg_match_all('/(\$[a-z0-9_]+\$)/', $val, $m, PREG_PATTERN_ORDER)) { + foreach ($m[1] as $val) { + if (array_key_exists($val, $blacklistedVars)) { + $id = $blacklistedVars[$val]; + $suggestedFields[$id] = $existingFields[$id]; + unset($existingFields[$id]); + } else { + $argumentVars[$val] = $val; + } } } }