/
MantisFilter.class.php
86 lines (73 loc) · 2.35 KB
/
MantisFilter.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
# MantisBT - a php based bugtracking system
# Copyright (C) 2002 - 2009 MantisBT Team - mantisbt-dev@lists.sourceforge.
# MantisBT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# MantisBT is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with MantisBT. If not, see <http://www.gnu.org/licenses/>.
/**
* Base class that implements basic filter functionality
* and integration with MantisBT.
* @package MantisBT
* @subpackage classes
*/
abstract class MantisFilter {
/**
* Field name, as used in the form element and processing.
*/
public $field = null;
/**
* Filter title, as displayed to the user.
*/
public $title = null;
/**
* Filter type, as defined in core/constant_inc.php
*/
public $type = null;
/**
* Default filter value, used for non-list filter types.
*/
public $default = null;
/**
* Form element size, used for non-boolean filter types.
*/
public $size = null;
/**
* Validate the filter input, returning true if input is
* valid, or returning false if invalid. Invalid inputs will
* be replaced with the filter's default value.
* @param multi Filter field input
* @return boolean Input valid (true) or invalid (false)
*/
public function validate( $p_filter_input ) {
return true;
}
/**
* Build the SQL query elements 'join', 'where', and 'params'
* as used by core/filter_api.php to create the primary filter
* query.
* @param multi Filter field input
* @return array Keyed-array with query elements; see developer guide
*/
abstract function query( $p_filter_input );
/**
* Display the current value of the filter field.
* @param multi Filter field input
* @return string Current value output
*/
abstract function display( $p_filter_value );
/**
* For list type filters, define a keyed-array of possible
* filter options, not including an 'any' value.
* @return array Filter options keyed by value=>display
*/
public function options() {}
}