MDL-31989 report_search: Adding the report
[moodle.git] / report / search / classes / output / renderer.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/>.
17 /**
18  * Search report renderer.
19  *
20  * @package    report_search
21  * @copyright  2015 David Monllao {@link http://www.davidmonllao.com}
22  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 namespace report_search\output;
27 defined('MOODLE_INTERNAL') || die();
29 /**
30  * Renderer for search report.
31  *
32  * @package    report_search
33  * @copyright  2015 David Monllao {@link http://www.davidmonllao.com}
34  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
35  */
36 class renderer extends \plugin_renderer_base {
38     /**
39      * Renders the global search admin interface.
40      *
41      * @param \report_search\output\form\admin $form
42      * @param \core_search\area\base[] $searchareas
43      * @param \stdClass[] $areasconfig
44      * @return string HTML
45      */
46     public function render_report($form, $searchareas, $areasconfig) {
48         $table = new \html_table();
49         $table->head = array(get_string('searcharea', 'search'), get_string('newestdocindexed', 'report_search'),
50             get_string('lastrun', 'report_search'));
52         foreach ($searchareas as $areaid => $searcharea) {
53             $cname = new \html_table_cell($searcharea->get_visible_name());
54             $clastrun = new \html_table_cell($areasconfig[$areaid]->lastindexrun);
55             if ($areasconfig[$areaid]->indexingstart) {
56                 $timediff = $areasconfig[$areaid]->indexingend - $areasconfig[$areaid]->indexingstart;
57                 $ctimetaken = new \html_table_cell($timediff . ' , ' .
58                                                   $areasconfig[$areaid]->docsprocessed . ' , ' .
59                                                   $areasconfig[$areaid]->recordsprocessed . ' , ' .
60                                                   $areasconfig[$areaid]->docsignored);
61             } else {
62                 $ctimetaken = '';
63             }
64             $row = new \html_table_row(array($cname, $clastrun, $ctimetaken));
65             $table->data[] = $row;
66         }
68         // Display the table.
69         $content = \html_writer::table($table);
71         // Display the form.
72         $formcontents = $this->output->heading(get_string('indexform', 'report_search'), 3) .
73             $this->output->notification(get_string('indexinginfo', 'report_search'), 'notifymessage') . $form->render();
74         $content .= \html_writer::tag('div', $formcontents, array('id' => 'searchindexform'));
76         return $content;
77     }
79 }