MDL-40313 question bank search classes should be namespaced.
[moodle.git] / question / classes / bank / search / condition.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
18 /**
19  * Defines an abstract class for filtering/searching the question bank.
20  *
21  * @package   core_question
22  * @copyright 2013 Ray Morris
23  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24  */
26 namespace core_question\bank\search;
27 defined('MOODLE_INTERNAL') || die();
29 /**
30  * An abstract class for filtering/searching questions.
31  *
32  * See also {@link question_bank_view::init_search_conditions()}.
33  * @copyright 2013 Ray Morris
34  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
35  */
36 abstract class condition {
37     /**
38      * Return an SQL fragment to be ANDed into the WHERE clause to filter which questions are shown.
39      * @return string SQL fragment. Must use named parameters.
40      */
41     public abstract function where();
43     /**
44      * Return parameters to be bound to the above WHERE clause fragment.
45      * @return array parameter name => value.
46      */
47     public function params() {
48         return array();
49     }
51     /**
52      * Display GUI for selecting criteria for this condition. Displayed when Show More is open.
53      *
54      * Compare display_options(), which displays always, whether Show More is open or not.
55      * @return string HTML form fragment
56      */
57     public function display_options_adv() {
58         return;
59     }
61     /**
62      * Display GUI for selecting criteria for this condition. Displayed always, whether Show More is open or not.
63      *
64      * Compare display_options_adv(), which displays when Show More is open.
65      * @return string HTML form fragment
66      */
67     public function display_options() {
68         return;
69     }
70 }