// Remove all valid values from calc, if anything is left over, it is invalid. // First, remove all field names. $repl = array(); $patterns = array(); foreach (_views_calc_substitutions() as $key => $value) { $key = trim($value); $count = strlen($value); $replace = preg_quote($value); $patterns[] = "`(^|[^\\\\\\\\])". $replace ."`"; $repl[] = '${1}'; } $remaining = trim(preg_replace($patterns, $repl, $item['calc'])); // Next, remove functions and numbers. $repl = array(); $patterns = array(); foreach (_views_calc_replacements() as $value) { $patterns[] = "`(^|[^\\\\\\\\])". preg_quote(trim($value)) ."`"; $repl[] = '${1}'; } $remaining = trim(preg_replace($patterns, $repl, $remaining)); if (!empty($remaining)) { form_set_error($form_values[$delta]['calc'], t('The values %remaining in %field are not allowed.', array('%remaining' => $remaining, '%field' => $item['label']))); }