MDL-40313 question bank search classes should be namespaced.
[moodle.git] / question / classes / bank / search / hidden_condition.php
CommitLineData
efa5155a 1<?php
e22e7490
TH
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/>.
16
17
efa5155a 18/**
e22e7490
TH
19 * A search class to control whether hidden / deleted questions are hidden in the list.
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 */
25
d62382d1 26namespace core_question\bank\search;
e22e7490
TH
27defined('MOODLE_INTERNAL') || die();
28
29/**
30 * This class controls whether hidden / deleted questions are hidden in the list.
31 *
32 * @copyright 2013 Ray Morris
33 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
efa5155a 34 */
d62382d1 35class hidden_condition extends condition {
e22e7490 36 /** @var bool Whether to include old "deleted" questions. */
efa5155a
RM
37 protected $hide;
38
e22e7490
TH
39 /** @var string SQL fragment to add to the where clause. */
40 protected $where;
41
efa5155a 42 /**
e22e7490
TH
43 * Constructor.
44 * @param bool $hide whether to include old "deleted" questions.
efa5155a
RM
45 */
46 public function __construct($hide = true) {
47 $this->hide = $hide;
48 if ($hide) {
49 $this->where = 'q.hidden = 0';
50 }
51 }
52
efa5155a
RM
53 public function where() {
54 return $this->where;
55 }
56
57 /**
58 * Print HTML to display the "Also show old questions" checkbox
59 */
60 public function display_options_adv() {
d62382d1
TH
61 echo \html_writer::start_div();
62 echo \html_writer::empty_tag('input', array('type' => 'hidden', 'name' => 'showhidden',
efa5155a 63 'value' => '0', 'id' => 'showhidden_off'));
d62382d1 64 echo \html_writer::checkbox('showhidden', '1', (! $this->hide), get_string('showhidden', 'question'),
efa5155a 65 array('id' => 'showhidden_on', 'class' => 'searchoptions'));
d62382d1 66 echo \html_writer::end_div() . "\n";
efa5155a
RM
67 }
68}