File: /var/www/html/elearningbasa.sumar.com.py/local/quiz_autostart-bk/lib-no.php
<?php
defined('MOODLE_INTERNAL') || die();
function local_quiz_autostart_before_http_headers() {
global $PAGE, $USER, $DB;
// Se aplica solo en view.php de cuestionarios
if ($PAGE->pagetype !== 'mod-quiz-view') {
return;
}
if (empty($PAGE->cm) || $PAGE->cm->modname !== 'quiz') {
return;
}
$quizid = $PAGE->cm->instance;
$cmid = $PAGE->cm->id;
// IDs de cuestionarios que queremos auto-redirigir
$targetquizzes = [219,220,221,222,223,224,225,226];
if (!in_array($quizid, $targetquizzes)) {
return;
}
// Solo estudiantes
$context = context_module::instance($cmid);
if (is_siteadmin() || has_capability('mod/quiz:preview', $context, $USER)) {
return;
}
// Comprobamos si hay intentos restantes
require_once($CFG->dirroot . '/mod/quiz/locallib.php');
$quizobj = quiz::create($PAGE->cm->instance, $USER->id);
$accessmanager = $quizobj->get_access_manager(time());
$currentattempts = quiz_get_user_attempts($quizobj->get_quizid(), $USER->id, 'all', true);
$lastfinishedattempt = end($currentattempts);
if (!$quizobj->is_preview_user() && !$quizobj->is_open(time())) {
return; // No está abierto
}
// Si quedan intentos → redirigir directo al intento
if ($quizobj->get_num_attempts_allowed() == 0 ||
count($currentattempts) < $quizobj->get_num_attempts_allowed()) {
$url = new moodle_url('/mod/quiz/startattempt.php', ['cmid' => $cmid, 'sesskey' => sesskey()]);
redirect($url);
exit;
}
// Si ya no quedan intentos → redirigir al curso
$courseurl = new moodle_url('/course/view.php', ['id' => $PAGE->cm->course]);
redirect($courseurl);
exit;
}