diff --git a/module/chart/model.php b/module/chart/model.php index 75ee6d25a5..2473ecfb3f 100644 --- a/module/chart/model.php +++ b/module/chart/model.php @@ -757,13 +757,24 @@ class chartModel extends model if(!isset($filter['default'])) continue; if(isset($filter['from']) and $filter['from'] == 'query') { - $default = $filter['default']; - $relatedField = $filter['relatedField']; - $sql = str_replace('$' . $filter['field'] . 'Condition', "{$relatedField}='{$default}'", $sql); + $default = $filter['default']; + if(strpos($sql, $filter['field'] . 'Condition') === false) + { + $sql = str_replace('$' . $filter['field'], "'{$default}'", $sql); + } + else + { + $relatedField = $filter['relatedField']; + $sql = str_replace('$' . $filter['field'] . 'Condition', "{$relatedField}='{$default}'", $sql); + } } } } - if(preg_match_all("/[\$]+[a-zA-Z0-9]+_[0-9]+Condition/", $sql, $out)) + + $matchRule = "[\$]+[a-zA-Z0-9]+_[0-9]"; + if(strpos($sql, 'Condition') !== false && strpos($sql, 'Variale_') !== false) $matchRule .= "+Condition"; + + if(preg_match_all("/{$matchRule}/", $sql, $out)) { foreach($out[0] as $match) $sql = str_replace($match, "''", $sql); } diff --git a/module/pivot/model.php b/module/pivot/model.php index 33887613fe..58a080b570 100644 --- a/module/pivot/model.php +++ b/module/pivot/model.php @@ -699,7 +699,15 @@ class pivotModel extends model if(isset($filter['from']) && $filter['from'] == 'query') { $queryDefault = isset($filter['default']) ? $this->processDateVar($filter['default']) : ''; - $sql = str_replace('$' . $filter['field'] . 'Condition', "{$filter['relatedField']}='{$queryDefault}'", $sql); + + if(strpos($sql, $filter['field'] . 'Condition') === false) + { + $sql = str_replace('$' . $filter['field'], "'{$queryDefault}'", $sql); + } + else + { + $sql = str_replace('$' . $filter['field'] . 'Condition', "{$filter['relatedField']}='{$queryDefault}'", $sql); + } } else {