/** * @return mixed * @throws InvalidFilterException * @throws UnknownColumnException * @throws UnknownFilterException */ protected function filterData() { $filters = array(); foreach ($this->filter as $name => $value) { try { if (!$this->columnExists($name)) { throw new UnknownColumnException($this->translator->translate("Column %s doesn't exists", $name)); } if (!$this['columns-' . $name]->hasFilter()) { throw new UnknownFilterException($this->translator->translate("Column %s doesn't have filter", $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("Invalid filter"); } } else { throw new InvalidFilterException("Invalid filter"); } } catch (UnknownColumnException $e) { $this->flashMessage($e->getMessage(), "grid-error"); } catch (UnknownFilterException $e) { $this->flashMessage($e->getMessage(), "grid-error"); } } return $this->dataSource->filterData($filters); }
/** * @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ící sloupec $name"); } if(!$this['columns-'.$name]->hasFilter()){ throw new UnknownFilterException("Neexistující filtr pro sloupec $name"); } $type = $this['columns-'.$name]->getFilterType(); //improoved database date convert $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ý filtr"); } }else{ throw new InvalidFilterException("Neplatný filtr"); } } 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)); } }