MDL-69454 core_search: consistent mod searches
[moodle.git] / mod / forum / classes / output / quick_search_form.php
CommitLineData
66bb9ead
FM
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/>.
16
17/**
18 * Quick search form renderable.
19 *
20 * @package mod_forum
21 * @copyright 2016 Frédéric Massart - FMCorz.net
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
25namespace mod_forum\output;
26defined('MOODLE_INTERNAL') || die();
27
28use help_icon;
29use moodle_url;
30use renderable;
31use renderer_base;
32use templatable;
33
34/**
35 * Quick search form renderable class.
36 *
37 * @package mod_forum
38 * @copyright 2016 Frédéric Massart - FMCorz.net
39 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
40 */
41class quick_search_form implements renderable, templatable {
42
43 /** @var int The course ID. */
44 protected $courseid;
45 /** @var string Current query. */
46 protected $query;
47 /** @var moodle_url The form action URL. */
48 protected $actionurl;
49 /** @var help_icon The help icon. */
50 protected $helpicon;
51
52 /**
53 * Constructor.
54 *
55 * @param int $courseid The course ID.
56 * @param string $query The current query.
57 */
58 public function __construct($courseid, $query = '') {
59 $this->courseid = $courseid;
60 $this->query = $query;
61 $this->actionurl = new moodle_url('/mod/forum/search.php');
62 $this->helpicon = new help_icon('search', 'core');
63 }
64
65 public function export_for_template(renderer_base $output) {
4c71e1d0
BB
66 $hiddenfields = [
67 (object) ['name' => 'id', 'value' => $this->courseid],
68 ];
66bb9ead 69 $data = [
4c71e1d0
BB
70 'action' => $this->actionurl->out(false),
71 'hiddenfields' => $hiddenfields,
66bb9ead
FM
72 'query' => $this->query,
73 'helpicon' => $this->helpicon->export_for_template($output),
4c71e1d0
BB
74 'inputname' => 'search',
75 'searchstring' => get_string('searchforums', 'mod_forum')
66bb9ead
FM
76 ];
77 return $data;
78 }
79
80}