public function test_certificate_get_ordinal_number_suffix() { $this->assertEquals('th', certificate_get_ordinal_number_suffix(0)); $this->assertEquals('st', certificate_get_ordinal_number_suffix(1)); $this->assertEquals('nd', certificate_get_ordinal_number_suffix(2)); $this->assertEquals('rd', certificate_get_ordinal_number_suffix(3)); $this->assertEquals('th', certificate_get_ordinal_number_suffix(12)); }
/** * Returns the date to display for the certificate. * * @param stdClass $certificate * @param stdClass $certrecord * @param stdClass $course * @param int $userid * @return string the date */ function certificate_get_date($certificate, $certrecord, $course, $userid = null) { global $DB, $USER; if (empty($userid)) { $userid = $USER->id; } // Set certificate date to current time, can be overwritten later $date = $certrecord->timecreated; if ($certificate->printdate == '2') { // Get the enrolment end date $sql = "SELECT MAX(c.timecompleted) as timecompleted\n FROM {course_completions} c\n WHERE c.userid = :userid\n AND c.course = :courseid"; if ($timecompleted = $DB->get_record_sql($sql, array('userid' => $userid, 'courseid' => $course->id))) { if (!empty($timecompleted->timecompleted)) { $date = $timecompleted->timecompleted; } } } else { if ($certificate->printdate > 2) { if ($modinfo = certificate_get_mod_grade($course, $certificate->printdate, $userid)) { $date = $modinfo->dategraded; } } } if ($certificate->printdate > 0) { if ($certificate->datefmt == 1) { $certificatedate = userdate($date, '%B %d, %Y'); } else { if ($certificate->datefmt == 2) { $suffix = certificate_get_ordinal_number_suffix(userdate($date, '%d')); $certificatedate = userdate($date, '%B %d' . $suffix . ', %Y'); } else { if ($certificate->datefmt == 3) { $certificatedate = userdate($date, '%d %B %Y'); } else { if ($certificate->datefmt == 4) { $certificatedate = userdate($date, '%B %Y'); } else { if ($certificate->datefmt == 5) { $certificatedate = userdate($date, get_string('strftimedate', 'langconfig')); } } } } } return $certificatedate; } return ''; }