Proyectos de Subversion Moodle

Rev

Rev 1368 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

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