/** * Generates the attendance report after completion of class giving details of * attendee list and duration of class. * * @param integer $courseid the course id in which the class is scheduled. * @param integer $class_id id of the class for which attenadnce report is generated. * @param integer $id id of the course. * @param string $errormsg error message if there is any error in generating the attendance report. * will be used in next version * @param string $attendancexmlch_dur total duration of class. * @param string $attendancexmlch_attlist attendee's details for attendance report. */ function wiziq_getattendancereport($courseid, $coursecontext, $class_id, $id, &$errormsg, &$attendancexmlch_dur, &$attendancexmlch_attlist) { global $CFG, $wiziq_secretacesskey, $wiziq_access_key, $wiziq_webserviceurl, $USER; $wiziq_secretacesskey = $CFG->wiziq_secretacesskey; $wiziq_access_key = $CFG->wiziq_access_key; $wiziq_webserviceurl = $CFG->wiziq_webserviceurl; require_once("authbase.php"); $wiziq_authbase = new wiziq_authbase($wiziq_secretacesskey, $wiziq_access_key); $method = "get_attendance_report"; $requestparameters["signature"]=$wiziq_authbase->wiziq_generatesignature($method, $requestparameters); $requestparameters["class_id"] = $class_id; $wiziq_httprequest=new wiziq_httprequest(); try { $xmlreturn=$wiziq_httprequest->wiziq_do_post_request( $wiziq_webserviceurl.'?method=get_attendance_report', $requestparameters); libxml_use_internal_errors(true); $attendancexml = new SimpleXMLElement($xmlreturn); $attendancexml_status = $attendancexml->attributes(); if ($attendancexml_status == 'ok') { $attendancexmlch = $attendancexml->get_attendance_report; $attendancexmlch_status = $attendancexmlch->attributes(); if ($attendancexmlch_status == 'true') { $attendancexmlch_dur = $attendancexmlch->class_duration; $attendancexmlch_attlist = $attendancexmlch->attendee_list; } } else if ($attendancexml_status=="fail") { $att = 'msg'; $attribute = (string)$attendancexml->error->attributes()->$att; $url = new moodle_url('/mod/wiziq/index.php', array('id' => $id)); $params = array( 'objectid' => $class_id, 'relateduserid' => $USER->id, 'courseid' => $courseid, 'context' => $coursecontext, 'other' => array( 'sesskey' => sesskey(), 'error' => $attribute ) ); $event = \mod_wiziq\event\wiziq_classattendance::create($params); $event->trigger(); print_error('1', '', '', $attribute); } } catch (Exception $e) { if (property_exists($e, 'errorcode')) { print_error($e->a); } else { $errormsg = get_string('errorinservice', 'wiziq'); $params = array( 'objectid' => $class_id, 'relateduserid' => $USER->id, 'courseid' => $courseid, 'context' => $coursecontext, 'other' => array( 'sesskey' => sesskey(), 'error' => $errormsg ) ); $event = \mod_wiziq\event\wiziq_classattendance::create($params); $event->trigger(); print_error($errormsg); } } }
array('class_id' => $class_id, 'course' => $id), '*', IGNORE_MULTIPLE); require_course_login($course); $coursecontext = context_course::instance($course->id); $noerror = get_string('noerror','wiziq'); $params = array( 'objectid' => $class_id, 'relateduserid' => $USER->id, 'courseid' => $id, 'context' => $coursecontext, 'other' => array( 'sesskey' => $sesskey, 'error' => $noerror ) ); $event = \mod_wiziq\event\wiziq_classattendance::create($params); $event->trigger(); $PAGE->set_url('/mod/wiziq/attendancereport.php', array('id' => $id, 'classid'=>$class_id, 'sesskey' => sesskey())); $pagetitle = new stdClass(); $pagetitle->name = get_string('attendance_report', 'wiziq'); $PAGE->set_title(format_string($pagetitle->name)); $wiziq_attendancereport = get_string('wiziq_attendancereport', 'wiziq'); $att_rep_title = $wiziq_attendancereport." ".$wiziqclass->name; $PAGE->set_heading(format_string($att_rep_title)); $PAGE->set_context($coursecontext); $PAGE->set_pagelayout('incourse'); $course_number = $course->id; wiziq_getattendancereport($id, $coursecontext, $class_id, $id, $errormsg, $attendancexmlch_dur, $attendancexmlch_attlist);