. /** * Embed H5P Content * * @package mod_hvp * @copyright 2016 Joubel AS * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once("../../config.php"); require_once("locallib.php"); global $PAGE, $DB, $CFG, $OUTPUT; $id = required_param('id', PARAM_INT); // Allow login through an authentication token. $userid = optional_param('user_id', null, PARAM_ALPHANUMEXT); $secret = optional_param('secret', null, PARAM_RAW); $disabledownload = false; $disablefullscreen = false; if (\mod_hvp\mobile_auth::has_valid_token($userid, $secret)) { $user = get_complete_user_data('id', $userid); complete_user_login($user); $disabledownload = true; $disablefullscreen = true; } // Verify course context. $cm = get_coursemodule_from_id('hvp', $id); if (!$cm) { print_error('invalidcoursemodule'); } $course = $DB->get_record('course', array('id' => $cm->course)); if (!$course) { print_error('coursemisconf'); } try { require_course_login($course, true, $cm, true, true); } catch (Exception $e) { $PAGE->set_pagelayout('embedded'); $root = \mod_hvp\view_assets::getsiteroot(); $embedfailedsvg = new \moodle_url("{$root}/mod/hvp/library/images/h5p.svg"); echo '' . '
' . '
' . '
' . get_string('embedloginfailed', 'hvp') . '
' . ''; return; } $context = context_module::instance($cm->id); require_capability('mod/hvp:view', $context); // Set up view assets. $view = new \mod_hvp\view_assets($cm, $course, [ 'disabledownload' => $disabledownload, 'disablefullscreen' => $disablefullscreen ]); $content = $view->getcontent(); $view->validatecontent(); // Release session while loading the rest of our assets. core\session\manager::write_close(); // Configure page. $PAGE->set_url(new \moodle_url('/mod/hvp/embed.php', array('id' => $id))); $PAGE->set_title(format_string($content['title'])); $PAGE->set_heading($course->fullname); // Embed specific page setup. $PAGE->add_body_class('h5p-embed'); $PAGE->set_pagelayout('embedded'); $root = \mod_hvp\view_assets::getsiteroot(); $PAGE->requires->js_call_amd('mod_hvp/embed'); // Add H5P assets to page. $view->addassetstopage(); $view->logviewed(); // Print page HTML. echo $OUTPUT->header(); echo '
'; // Print any messages. \mod_hvp\framework::printMessages('info', \mod_hvp\framework::messages('info')); \mod_hvp\framework::printMessages('error', \mod_hvp\framework::messages('error')); $view->outputview(); echo $OUTPUT->footer();