/** * @inheritdoc */ public function __construct($certificate, $course, $coursemodule, $certificateissues = null) { // If no certificateissues provided, we replace it with some dummy, // enough to that the $this->get_pdf() will be able to render something. if (empty($certificateissues)) { // Create a dummy certificate_issues. $certificateissues = new stdClass(); $certificateissues->timecreated = time(); $certificateissues->code = certificate_generate_code(); } parent::__construct($certificate, $course, $certificateissues, $coursemodule); }
/** * Inserts preliminary user data when a certificate is viewed. * Prevents form from issuing a certificate upon browser refresh. * * @param stdClass $course * @param stdClass $user * @param stdClass $certificate * @return stdClass the newly created certificate issue */ function certificate_prepare_issue($course, $user, $certificate) { global $DB; if ($certificate->reissuecert == 0) { // Get the last one they received if ($certissue = certificate_get_latest_issue($certificate->id, $user->id)) { return $certissue; } } else { if ($certissue = $DB->get_record('certificate_issues', array('certificateid' => $certificate->id, 'userid' => $user->id, 'certdate' => '0'))) { return $certissue; } } // Create new certificate issue record $certissue = new stdClass(); $certissue->certificateid = $certificate->id; $certissue->userid = $user->id; $certissue->timecreated = time(); $certissue->studentname = fullname($user); $certissue->code = certificate_generate_code(); $certissue->classname = $course->fullname; $certissue->certdate = 0; $certissue->reportgrade = NULL; $certissue->id = $DB->insert_record('certificate_issues', $certissue); return $certissue; }
/** * Inserts preliminary user data when a certificate is viewed. * Prevents form from issuing a certificate upon browser refresh. * * @param stdClass $course * @param stdClass $user * @param stdClass $certificate * @param stdClass $cm * @return stdClass the newly created certificate issue */ function certificate_get_issue($course, $user, $certificate, $cm) { global $DB; // Check if there is an issue already, should only ever be one if ($certissue = $DB->get_record('certificate_issues', array('userid' => $user->id, 'certificateid' => $certificate->id))) { return $certissue; } // Create new certificate issue record $certissue = new stdClass(); $certissue->certificateid = $certificate->id; $certissue->userid = $user->id; $certissue->code = certificate_generate_code(); $certissue->timecreated = time(); $certissue->id = $DB->insert_record('certificate_issues', $certissue); // Email to the teachers and anyone else certificate_email_teachers($course, $certificate, $certissue, $cm); certificate_email_others($course, $certificate, $certissue, $cm); return $certissue; }
function certificate_prepare_issue($course, $user) { global $certificate; if (record_exists("certificate_issues", "certificateid", $certificate->id, "userid", $user->id)) { return get_record("certificate_issues", "certificateid", $certificate->id, "userid", $user->id); } else { if (certificate_grade_condition()) { $timecreated = time(); $certdate = certificate_generate_date($certificate, $course); if (!$certdate) { $certdate = $timecreated; } $code = certificate_generate_code(); if ($certificate->printgrade == 1) { $coursegrade = get_course_grade($course->id); } else { if ($certificate->printgrade > 1) { $coursegrade = certificate_mod_grade($course, $certificate->printgrade); } } if ($certificate->gradefmt == 1) { $gradeinput = $coursegrade->percentage . '%'; } else { if ($certificate->gradefmt == 2) { $gradeinput = $coursegrade->points . ' %%P%%'; } else { if ($certificate->gradefmt == 3) { $gradeinput = certificate_get_gradeletter($coursegrade->percentage); } } } $studentname = str_replace('\'', '\\\'', certificate_generate_studentname($course, $user)); insert_record("certificate_issues", array("certificateid" => $certificate->id, "userid" => $user->id, "timecreated" => $timecreated, "studentname" => $studentname, "code" => $code, "classname" => str_replace('\'', '\\\'', $course->fullname), "certdate" => $certdate, "credits" => $certificate->credithours, "grade" => $gradeinput), false); certificate_email_teachers($certificate); } } }
function certificate_prepare_issue($course, $user, $certificate) { if (record_exists('certificate_issues', 'certificateid', $certificate->id, 'userid', $user->id)) { return; } $timecreated = time(); $code = certificate_generate_code(); $studentname = fullname($user); $newrec = new Object(); $newrec->certificateid = $certificate->id; $newrec->userid = $user->id; $newrec->timecreated = $timecreated; $newrec->studentname = addslashes($studentname); $newrec->code = addslashes($code); $newrec->classname = addslashes($course->fullname); $certissue = insert_record('certificate_issues', $newrec, false); //now assign certification! if (!empty($certificate->setcertification)) { $profilefield = new stdclass(); $profilefield->certtype = $certificate->setcertification; $profilefield->userid = $user->id; $profilefield->courseid = $course->id; $profilefield->changeuserid = $user->id; $profilefield->timechanged = time(); insert_record('tao_user_certification_status', $profilefield); //now save event //get shortname of certification being set: $eventdata = new object(); $eventdata->userid = $user->id; $eventdata->course = $course->id; $eventdata->certification = $certificate->setcertification; $eventdata->certificationid = $certificate->id; events_trigger('certification_updated', $eventdata); } }