From ff1bdc42afdba3d0b76acb0697f9410d9bd6e342 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Tue, 23 Jul 2013 18:04:46 +0800 Subject: [PATCH] Set a date and grade to display when previewing a customcert --- element/date/lib.php | 51 ++++++++++--------- .../grade/lang/en/customcertelement_grade.php | 1 + element/grade/lib.php | 10 +++- 3 files changed, 37 insertions(+), 25 deletions(-) diff --git a/element/date/lib.php b/element/date/lib.php index 7572163..3645d6d 100644 --- a/element/date/lib.php +++ b/element/date/lib.php @@ -96,30 +96,35 @@ class customcert_element_date extends customcert_element_base { $dateitem = $dateinfo->dateitem; $dateformat = $dateinfo->dateformat; - // Get the page. - $page = $DB->get_record('customcert_pages', array('id' => $this->element->pageid), '*', MUST_EXIST); - // Now we can get the issue for this user. - $issue = $DB->get_record('customcert_issues', array('userid' => $USER->id, 'customcertid' => $page->customcertid), '*', MUST_EXIST); - - if ($dateitem == CUSTOMCERT_DATE_ISSUE) { - $date = $issue->timecreated; - } else if ($dateitem == CUSTOMCERT_DATE_COMPLETION) { - // Get the enrolment end date. - $sql = "SELECT MAX(c.timecompleted) as timecompleted - FROM {course_completions} c - WHERE c.userid = :userid - AND c.course = :courseid"; - if ($timecompleted = $DB->get_record_sql($sql, array('userid' => $issue->userid, 'courseid' => $COURSE->id))) { - if (!empty($timecompleted->timecompleted)) { - $date = $timecompleted->timecompleted; - } - } + // If we are previewing this certificate then just show a demonstration date. + if ($preview) { + $date = time(); } else { - $gradeitem = new stdClass(); - $gradeitem->gradeitem = $dateitem; - $gradeitem->gradeformat = GRADE_DISPLAY_TYPE_PERCENTAGE; - if ($modinfo = customcert_element_grade::get_grade($gradeitem, $issue->userid)) { - $date = $modinfo->dategraded; + // Get the page. + $page = $DB->get_record('customcert_pages', array('id' => $this->element->pageid), '*', MUST_EXIST); + // Now we can get the issue for this user. + $issue = $DB->get_record('customcert_issues', array('userid' => $USER->id, 'customcertid' => $page->customcertid), '*', MUST_EXIST); + + if ($dateitem == CUSTOMCERT_DATE_ISSUE) { + $date = $issue->timecreated; + } else if ($dateitem == CUSTOMCERT_DATE_COMPLETION) { + // Get the enrolment end date. + $sql = "SELECT MAX(c.timecompleted) as timecompleted + FROM {course_completions} c + WHERE c.userid = :userid + AND c.course = :courseid"; + if ($timecompleted = $DB->get_record_sql($sql, array('userid' => $issue->userid, 'courseid' => $COURSE->id))) { + if (!empty($timecompleted->timecompleted)) { + $date = $timecompleted->timecompleted; + } + } + } else { + $gradeitem = new stdClass(); + $gradeitem->gradeitem = $dateitem; + $gradeitem->gradeformat = GRADE_DISPLAY_TYPE_PERCENTAGE; + if ($modinfo = customcert_element_grade::get_grade($gradeitem, $issue->userid)) { + $date = $modinfo->dategraded; + } } } diff --git a/element/grade/lang/en/customcertelement_grade.php b/element/grade/lang/en/customcertelement_grade.php index 7dc5cc7..1a770b9 100644 --- a/element/grade/lang/en/customcertelement_grade.php +++ b/element/grade/lang/en/customcertelement_grade.php @@ -33,3 +33,4 @@ $string['gradepercent'] = 'Percentage Grade'; $string['gradepoints'] = 'Points Grade'; $string['gradeletter'] = 'Letter Grade'; $string['pluginname'] = 'Grade'; +$string['previewgrade'] = 'Preview grade'; diff --git a/element/grade/lib.php b/element/grade/lib.php index dc354a9..84596b2 100644 --- a/element/grade/lib.php +++ b/element/grade/lib.php @@ -94,8 +94,14 @@ class customcert_element_grade extends customcert_element_base { // Decode the information stored in the database. $gradeinfo = json_decode($this->element->data); - // Get the grade for the grade item. - $grade = self::get_grade($gradeinfo, $USER->id); + // If we are previewing this certificate then just show a demonstration grade. + if ($preview) { + $grade = get_string('previewgrade', 'customcertelement_grade') . ": 50%"; + } else { + // Get the grade for the grade item. + $grade = self::get_grade($gradeinfo, $USER->id); + } + parent::render_content($pdf, $grade); }