<?php
-abstract class BaseListFilter{
- function __construct($title, $choices){
+namespace {
+
+abstract class BaseListFilter
+{
+ public $name;
+
+ function __construct($title, $choices)
+ {
$this->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);
}
}
}
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,
),
));
}