. /** * This file contains the customcert element code's core interaction API. * * @package customcertelement_code * @copyright 2013 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace customcertelement_code; defined('MOODLE_INTERNAL') || die(); /** * The customcert element code's core interaction API. * * @package customcertelement_code * @copyright 2013 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class element extends \mod_customcert\element { /** * Handles rendering the element on the pdf. * * @param \pdf $pdf the pdf object * @param bool $preview true if it is a preview, false otherwise * @param \stdClass $user the user we are rendering this for */ public function render($pdf, $preview, $user) { global $DB; if ($preview) { $code = \mod_customcert\certificate::generate_code(); } else { // Get the page. $page = $DB->get_record('customcert_pages', array('id' => $this->get_pageid()), '*', MUST_EXIST); // Get the customcert this page belongs to. $customcert = $DB->get_record('customcert', array('templateid' => $page->templateid), '*', MUST_EXIST); // Now we can get the issue for this user. $issue = $DB->get_record('customcert_issues', array('userid' => $user->id, 'customcertid' => $customcert->id), '*', IGNORE_MULTIPLE); $code = $issue->code; } \mod_customcert\element_helper::render_content($pdf, $this, $code); } /** * Render the element in html. * * This function is used to render the element when we are using the * drag and drop interface to position it. * * @return string the html */ public function render_html() { $code = \mod_customcert\certificate::generate_code(); return \mod_customcert\element_helper::render_html_content($this, $code); } }