From: Andrey Kutejko Date: Sat, 30 Nov 2013 09:26:34 +0000 (+0200) Subject: boolean admin filter (fixes) X-Git-Tag: 0.5~11 X-Git-Url: https://git.andy128k.dev/?a=commitdiff_plain;h=36c3df92cf1a726c7a59b0c6efcba16564170b82;p=ipf.git boolean admin filter (fixes) --- diff --git a/ipf/admin/model.php b/ipf/admin/model.php index d651636..7352d07 100644 --- a/ipf/admin/model.php +++ b/ipf/admin/model.php @@ -1,48 +1,58 @@ choices = $choices; $this->title = $title; } - function IsChoice($id){ - foreach($this->choices as &$ch){ - if ($ch['id']==$id) + function IsChoice($id) + { + foreach ($this->choices as $ch) + if ($ch['id'] == $id) return true; - } return false; } - function selected(){ - foreach($this->choices as &$ch){ - if ( ($ch['id']!='') && ($ch['selected']===true) ) + function selected() + { + foreach ($this->choices as $ch) + if (($ch['id'] != '') && ($ch['selected']===true)) return true; - } return false; } abstract function SetSelect($request); - abstract function FilterQuery($request, $q); + abstract function FilterQuery($request, $query); } -class ListFilter extends BaseListFilter { - function __construct($local, $foreign, $choices, $title){ +class ListFilter extends BaseListFilter +{ + function __construct($local, $foreign, $choices, $title) + { parent::__construct($title, $choices); $this->local = $local; $this->foreign = $foreign; } - function SetSelect($request) { + function SetSelect($request) + { /* nothing to do */ } - function FilterQuery($request,$q){ + function FilterQuery($request, $query) + { $param_name = 'filter_'.$this->local; if (isset($request->GET[$param_name])){ $id = $request->GET[$param_name]; if ($this->IsChoice($id)){ - $q->addWhere($this->local.'='.$id); + $query->addWhere($this->local.'='.$id); } } } @@ -54,22 +64,26 @@ class BooleanFilter extends BaseListFilter public function __construct($column, $title, $trueTitle='Yes', $falseTitle='No') { + $this->name = $column; $this->column = $column; parent::__construct($title, array( array( 'id' => null, 'param' => '', 'name' => 'All', + 'selected' => true, ), array( 'id' => 'y', 'param' => 'filter_'.$this->column.'=y', 'name' => $trueTitle, + 'selected' => false, ), array( 'id' => 'n', 'param' => 'filter_'.$this->column.'=n', 'name' => $falseTitle, + 'selected' => false, ), )); }