Proyectos de Subversion Moodle

Rev

Rev 1366 | Rev 1368 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1366 Rev 1367
Línea 33... Línea 33...
33
 
33
 
34
 
34
 
Línea 35... Línea -...
35
$searchURL = false;
-
 
36
$linkURL = '';
-
 
37
 
-
 
38
if (!empty($PAGE->course->id)) {
-
 
39
    $course = get_course($PAGE->course->id);
-
 
40
    $course_context = context_course::instance($course->id);
-
 
41
 
-
 
42
    $notifyeditingon  = empty($_GET['notifyeditingon']) ? 0 : intval($_GET['notifyeditingon'], 10);
-
 
43
 
-
 
44
    // Detectar si el usuario es invitado o está accediendo sin loguearse
-
 
45
    $isguestaccess = isguestuser() || !isloggedin();
-
 
46
 
-
 
47
    // Solo activar redirección si NO es docente, admin, ni invitado anónimo
-
 
48
    if (
-
 
49
        has_capability('moodle/course:manageactivities', $course_context, $USER->id) ||
-
 
50
        has_capability('moodle/course:viewhiddenactivities', $course_context, $USER->id) ||
-
 
51
        $notifyeditingon ||
-
 
52
        $isguestaccess
-
 
53
    ) {
-
 
54
        $searchURL = false;
-
 
55
    } else {
-
 
56
        // Solo aplicar redirección si NO es un usuario invitado
-
 
57
        if (!isguestuser()) {
-
 
58
            $searchURL = true;
-
 
59
        } else {
-
 
60
            $searchURL = false;
-
 
61
        }
-
 
62
    }
-
 
63
 
-
 
64
    if ($searchURL) {
-
 
65
        $completioninfo = new \completion_info($course);
-
 
66
        $modules = get_fast_modinfo($course->id)->get_cms();
-
 
67
 
-
 
68
        if (!empty($modules)) {
-
 
69
            foreach ($modules as $module) {
-
 
70
                // Para invitados, solo verificar visibilidad básica
-
 
71
                if (isguestuser()) {
-
 
72
                    if (!$module->uservisible || empty($module->url)) {
-
 
73
                        continue;
-
 
74
                    }
-
 
75
                } else {
-
 
76
                    // Para usuarios normales, mantener la lógica original
-
 
77
                    if (!$module->uservisible || $module->is_stealth() || empty($module->url)) {
-
 
78
                        continue;
-
 
79
                    }
-
 
80
                }
-
 
81
 
-
 
82
                $linkURL = new \moodle_url($module->url, array('forceview' => 1));
-
 
83
 
-
 
84
                // Solo verificar completitud para usuarios no invitados
-
 
85
                if (!isguestuser()) {
-
 
86
                    $completiondata = $completioninfo->get_data($module, true);
-
 
87
                    if (
-
 
88
                        $completiondata &&
-
 
89
                        ($completiondata->completionstate == COMPLETION_COMPLETE || $completiondata->completionstate == COMPLETION_COMPLETE_PASS)
-
 
90
                    ) {
-
 
91
                        continue;
-
 
92
                    }
-
 
93
                }
-
 
94
 
-
 
95
                break;
-
 
96
            }
-
 
97
        }
-
 
98
    }
-
 
99
}
-
 
100
 
-
 
101
if (!empty($linkURL)) {
-
 
Línea 102... Línea 35...
102
    redirect($linkURL);
35
$searchURL = false;
103
    exit;
36
$linkURL = '';
Línea 104... Línea 37...
104
}
37