. /** * Contains class used to prepare a verification result for display. * * @package mod_htmlcert * @copyright 2017 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace mod_htmlcert\output; defined('MOODLE_INTERNAL') || die(); use renderable; use templatable; /** * Class to prepare a verification result for display. * * @package mod_htmlcert * @copyright 2017 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class verify_certificate_result implements templatable, renderable { /** * @var string The URL to the user's profile. */ public $userprofileurl; /** * @var string The user's fullname. */ public $userfullname; /** * @var string The URL to the course page. */ public $courseurl; /** * @var string The course's fullname. */ public $coursefullname; /** * @var string The certificate's name. */ public $certificatename; /** * Constructor. * * @param \stdClass $result */ public function __construct($result) { $cm = get_coursemodule_from_instance('htmlcert', $result->certificateid); $context = \context_module::instance($cm->id); $this->userprofileurl = new \moodle_url('/user/view.php', array('id' => $result->userid, 'course' => $result->courseid)); $this->userfullname = fullname($result); $this->courseurl = new \moodle_url('/course/view.php', array('id' => $result->courseid)); $this->coursefullname = format_string($result->coursefullname, true, ['context' => $context]); $this->certificatename = format_string($result->certificatename, true, ['context' => $context]); } /** * Function to export the renderer data in a format that is suitable for a mustache template. * * @param \renderer_base $output Used to do a final render of any components that need to be rendered for export. * @return \stdClass|array */ public function export_for_template(\renderer_base $output) { $result = new \stdClass(); $result->userprofileurl = $this->userprofileurl; $result->userfullname = $this->userfullname; $result->coursefullname = $this->coursefullname; $result->courseurl = $this->courseurl; $result->certificatename = $this->certificatename; return $result; } }