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 * User competency page. Lists everything known about a user competency. 19 * 20 * @package tool_lp 21 * @copyright 2015 Damyon Wiese 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 require(__DIR__ . '/../../../config.php'); 26 27 $userid = optional_param('userid', 0, PARAM_INT); 28 $competencyid = required_param('competencyid', PARAM_INT); 29 $courseid = required_param('courseid', PARAM_INT); 30 31 require_login(null, false); 32 if (isguestuser()) { 33 throw new require_login_exception('Guests are not allowed here.'); 34 } 35 \core_competency\api::require_enabled(); 36 37 $course = $DB->get_record('course', array('id' => $courseid)); 38 $context = context_course::instance($courseid); 39 $currentgroup = groups_get_course_group($course, true); 40 if (empty($userid)) { 41 $gradable = get_enrolled_users($context, 'moodle/competency:coursecompetencygradable', $currentgroup, 'u.id', null, 0, 1); 42 if (empty($gradable)) { 43 $userid = 0; 44 } else { 45 $userid = array_pop($gradable)->id; 46 } 47 } else { 48 $gradable = get_enrolled_users($context, 'moodle/competency:coursecompetencygradable', $currentgroup, 'u.id'); 49 if (count($gradable) == 0) { 50 $userid = 0; 51 } else if (!in_array($userid, array_keys($gradable))) { 52 $userid = array_shift($gradable)->id; 53 } 54 } 55 56 $params = array('userid' => $userid, 'competencyid' => $competencyid, 'courseid' => $courseid); 57 $url = new moodle_url('/admin/tool/lp/user_competency_in_course.php', $params); 58 59 if ($userid > 0) { 60 $usercontext = context_user::instance($userid); 61 $user = $DB->get_record('user', array('id' => $userid)); 62 } 63 $competency = new \core_competency\competency($competencyid); 64 65 // Does a permissions check for us. 66 if ($userid > 0) { 67 $usercompetencycourses = \core_competency\api::list_user_competencies_in_course($courseid, $userid); 68 } 69 $subtitle = $competency->get('shortname') . ' <em>' . $competency->get('idnumber') . '</em>'; 70 71 list($title, $subtitle) = \tool_lp\page_helper::setup_for_course($url, $course, $subtitle); 72 73 $output = $PAGE->get_renderer('tool_lp'); 74 if ($userid > 0) { 75 $userheading = array( 76 'heading' => fullname($user), 77 'user' => $user, 78 'usercontext' => $usercontext 79 ); 80 } 81 echo $output->header(); 82 if ($userid > 0) { 83 echo $OUTPUT->context_header($userheading, 3); 84 } 85 86 $baseurl = new moodle_url('/admin/tool/lp/user_competency_in_course.php'); 87 $nav = new \tool_lp\output\user_competency_course_navigation($userid, $competencyid, $courseid, $baseurl); 88 echo $output->render($nav); 89 if ($userid > 0) { 90 $page = new \tool_lp\output\user_competency_summary_in_course($userid, $competencyid, $courseid); 91 echo $output->render($page); 92 93 // Trigger the viewed event. 94 $uc = \core_competency\api::get_user_competency_in_course($courseid, $userid, $competencyid); 95 \core_competency\api::user_competency_viewed_in_course($uc, $courseid); 96 } else { 97 echo $output->container('', 'clearfix'); 98 echo $output->notify_problem(get_string('noparticipants', 'tool_lp')); 99 } 100 101 echo $output->footer();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body