private function GetFilterConditionAsSQL(Dataset $dataset, FilterCondition $filter) { if ($filter->GetValue(0) == '' && $filter->GetDisplayValue() != '') { $newFilter = new FilterCondition($dataset->IsLookupFieldByPrimaryName($filter->GetFieldName()), $filter->GetOperator(), $filter->GetDisplayValue()); $legacyFilter = $this->CreateLegacyFilter($newFilter); return $this->legacyGenerator->CreateCondition($legacyFilter, $dataset->GetFieldInfoByName($newFilter->GetFieldName())); } else { $legacyFilter = $this->CreateLegacyFilter($filter); return $this->legacyGenerator->CreateCondition($legacyFilter, $dataset->GetFieldInfoByName($filter->GetFieldName())); } /*return StringUtils::Format('(%s %s %s)', $filter->GetFieldName(), $this->GetConditionOperatorAsSQL($filter->GetOperator()), $this->GetFieldValueAsSQL($filter->GetFieldName(), $filter->GetValue(0)) );*/ }
private function GetFilterConditionAsSQL(Dataset $dataset, FilterCondition $filter) { if (count($filter->GetValues()) == 0 && count($filter->GetDisplayValues()) > 0) { $newFilter = new FilterCondition($dataset->IsLookupFieldByPrimaryName($filter->GetFieldName()), $filter->GetOperator(), $filter->GetDisplayValue(0)); $legacyFilter = $this->CreateLegacyFilter($newFilter); } else { $legacyFilter = $this->CreateLegacyFilter($filter); } return $this->legacyGenerator->CreateCondition($legacyFilter, $dataset->GetFieldInfoByName($filter->GetFieldName())); }
/** * @return mixed * @throws InvalidFilterException * @throws UnknownColumnException * @throws UnknownFilterException */ protected function filterData() { try { $filters = array(); foreach ($this->filter as $name => $value) { if (!$this->columnExists($name)) { throw new UnknownColumnException("Neexistujúci stĺpec {$name}"); } if (!$this['columns-' . $name]->hasFilter()) { throw new UnknownFilterException("Neexistujúcí filter pre stĺpec {$name}"); } $type = $this['columns-' . $name]->getFilterType(); $filter = FilterCondition::prepareFilter($value, $type); if (method_exists("\\NiftyGrid\\FilterCondition", $filter["condition"])) { $filter = call_user_func("\\NiftyGrid\\FilterCondition::" . $filter["condition"], $filter["value"]); if (!empty($this['gridForm'][$this->name]['filter'][$name])) { $filter["column"] = $name; if (!empty($this['columns-' . $filter["column"]]->tableName)) { $filter["column"] = $this['columns-' . $filter["column"]]->tableName; } $filters[] = $filter; } else { throw new InvalidFilterException("Neplatný filter"); } } else { throw new InvalidFilterException("Neplatný filter"); } } return $this->dataSource->filterData($filters); } catch (UnknownColumnException $e) { $this->flashMessage($e->getMessage(), "grid-error"); $this->redirect("this", array("filter" => NULL)); } catch (UnknownFilterException $e) { $this->flashMessage($e->getMessage(), "grid-error"); $this->redirect("this", array("filter" => NULL)); } }