Kumi
9066e451c3
Integrated course module completion tracking to ensure activities are marked complete for users. This leverages the existing completionlib.php library to update the completion state. This enhancement ensures accurate tracking of user progress.
74 lines
No EOL
2.2 KiB
PHP
74 lines
No EOL
2.2 KiB
PHP
<?php
|
|
|
|
require_once(dirname(dirname(dirname(__FILE__))) . '/config.php');
|
|
require_once(dirname(__FILE__) . '/lib.php');
|
|
|
|
require_once($CFG->libdir . '/completionlib.php');
|
|
|
|
$id = required_param('id', PARAM_INT); // Course Module ID
|
|
|
|
$cm = get_coursemodule_from_id('exp360', $id, 0, false, MUST_EXIST);
|
|
$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
|
|
$exp360 = $DB->get_record('exp360', array('id' => $cm->instance), '*', MUST_EXIST);
|
|
|
|
$content_id = $exp360->content_id;
|
|
|
|
// Ensure completion is enabled for the course module.
|
|
$completion = new completion_info($course);
|
|
|
|
if ($completion->is_enabled($cm)) {
|
|
// Mark the activity as completed for this user.
|
|
$completion->update_state($cm, COMPLETION_COMPLETE, $userId);
|
|
}
|
|
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<style>
|
|
html,
|
|
body {
|
|
overflow: hidden;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<script src='https://cdn.exp360.com/embed/js/exp360-embed-3.8.59.js?d=d667dff2-97bb-437e-85d2-f7550d87a4d0&p=web'></script>
|
|
|
|
<script>
|
|
function startContent() {
|
|
exp360.openContent('<?php echo $content_id; ?>', {
|
|
popup: false,
|
|
autorotate: true,
|
|
autorotate_speed: 5,
|
|
autorotate_delay: 2500,
|
|
teleport_animation: false
|
|
});
|
|
}
|
|
|
|
var currentUrl = window.location.href;
|
|
var url = new URL(currentUrl);
|
|
var searchParams = new URLSearchParams(url.search);
|
|
|
|
var params = {};
|
|
searchParams.forEach((value, key) => {
|
|
params[key] = value;
|
|
});
|
|
|
|
function initialize() {
|
|
var newDiv = document.createElement('div');
|
|
newDiv.setAttribute('data-exp360-type', 'player');
|
|
newDiv.setAttribute('data-exp360-id', '<?php echo $content_id; ?>');
|
|
var windowWidth = document.documentElement.clientWidth;
|
|
var windowHeight = document.documentElement.clientHeight;
|
|
newDiv.setAttribute('data-exp360-params', `width=${windowWidth};height=${windowHeight};`);
|
|
document.body.appendChild(newDiv);
|
|
}
|
|
|
|
window.onload = initialize;
|
|
</script>
|
|
</body>
|
|
|
|
</html>
|