ParseConfigSQL($values_list), ','); if (!$optionValuesStr) { // no options, then return empty array return Array(); } $optionValuesTmp = explode(',', $optionValuesStr); $optionValues = Array(); foreach ($optionValuesTmp as $optionValue) { list($key, $val) = explode('=', $optionValue); $val = (substr($val,0,1) == '+') ? substr($val, 1) : $this->Application->Phrase($val); $optionValues[$key] = $val; } return $optionValues; } /** * Replace SQL's in valueList with appropriate queried values * * @param string $valueString * @return string * @todo Apply refactoring to embedded vars stuff */ function ParseConfigSQL($valueString) { $string = trim( str_replace('', TABLE_PREFIX, $valueString) ); preg_match_all("|\{(.*)\}|U", $string, $embedded_vars, PREG_SET_ORDER); /* in ValueList now can use globally available variables. Usage: {$_POST['variable']|what to output if $_POST['variable'] is set} e.g. $_POST['variable']='Hello' Will output: what to output if Hello is set */ if ($embedded_vars) { for ($i = 0; $i < count($embedded_vars); $i++) { $embedded_var = $embedded_vars[$i][1]; $embedded_var_src = $embedded_vars[$i][0]; list($var_name, $pattern) = explode('|', $embedded_var); eval('$var_value = (isset('.$var_name.')?'.$var_name.':false);'); if ($var_value !== false) { $pattern = str_replace($var_name, $var_value, $pattern); $string = str_replace($embedded_var_src, $pattern, $string); } else { $string = str_replace($embedded_var_src, '', $string); } } } if (preg_match_all('/(.*?)<\/SQL>/', $string, $regs)) { $i = 0; $sql_count = count($regs[0]); while ($i < $sql_count) { $string = str_replace(''.$regs[2][$i].'', $this->QueryConfigSQL($regs[2][$i], $regs[1][$i]), $string); $i++; } $string = preg_replace('/(,){2,}/', ',', $string); // trim trailing commas inside string } return $string; } function QueryConfigSQL($sql, $plus = '') { $valArray = $this->Conn->Query($sql); for($i=0; $i