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 namespace mod_lti\output; 18 19 use core_reportbuilder\system_report_factory; 20 use mod_lti\reportbuilder\local\systemreports\course_external_tools_list; 21 22 /** 23 * The course tools page renderable, containing a page header renderable and a course tools system report. 24 * 25 * @package mod_lti 26 * @copyright 2023 Jake Dallimore <jrhdallimore@gmail.com> 27 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 28 */ 29 class course_tools_page implements \renderable { 30 31 /** @var course_external_tools_list the course tools system report instance. */ 32 protected course_external_tools_list $coursetoolsreport; 33 34 /** @var course_tools_page_header the page header renderable instance. */ 35 protected course_tools_page_header $coursetoolspageheader; 36 37 /** 38 * Renderable constructor. 39 * 40 * @param int $courseid the id of the course. 41 */ 42 public function __construct(int $courseid) { 43 global $DB; 44 45 $context = \context_course::instance($courseid); 46 47 // Page intro, zero state and 'add new' button. 48 $canadd = has_capability('mod/lti:addcoursetool', $context); 49 $sql = 'SELECT COUNT(1) 50 FROM {lti_types} tt 51 WHERE tt.course IN(:siteid, :courseid) 52 AND tt.coursevisible NOT IN(:coursevisible)'; 53 $toolcount = $DB->count_records_sql($sql, ['siteid' => get_site()->id, 'courseid' => $courseid, 'coursevisible' => 0]); 54 $this->coursetoolspageheader = new course_tools_page_header($courseid, $toolcount, $canadd); 55 56 // Course tools report itself. 57 $this->coursetoolsreport = system_report_factory::create(course_external_tools_list::class, $context); 58 } 59 60 /** 61 * Get the course tools page header renderable. 62 * 63 * @return course_tools_page_header the renderable. 64 */ 65 public function get_header(): course_tools_page_header { 66 return $this->coursetoolspageheader; 67 } 68 69 /** 70 * Get the course tools list system report. 71 * 72 * @return course_external_tools_list the course tools list report. 73 */ 74 public function get_table(): course_external_tools_list { 75 return $this->coursetoolsreport; 76 } 77 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body