Open moodleulpgc opened 8 months ago
Buenas @mcalvoisyccom,
Si observando lo mismo que os comentó en su momento @moodleulpgc
Por ejemplo, el optional_param https://github.com/UNIMOODLE/moodle-mod_hybridteaching/blob/1cfb293415322c7e814e8330b3744c369c58730f/attendance.php#L98 sale igual que en la línea https://github.com/UNIMOODLE/moodle-mod_hybridteaching/blob/1cfb293415322c7e814e8330b3744c369c58730f/attendance.php#L75
Un saludo
Se incluyen aquí varios bloques de código con múltiples IFs y código repetitivo, spagetificado Por ejemplo
Pero incluir $CFG->wwwroot es percetamenet inútil. Y todas la url van a la misma base. Sería mucho más corto declarar antes del blqoue d eiff $url = new moodle_url($CFG->wwwroot . '/mod/hybridteaching/attendance.php', ['id' => $moduleid, 'sessionid' => $sessionid, 'view' => ''])); y luego ir cambiando/añadiendo los parámetros necesarios con $url->param() en cada IF Si acaso el redirect de hace como
En otras partes se repiten bloques
Que se pueden pasar fuera del case, y se ejecutan para todos, con una variable transitoria para la parte variable, o bien encapsular en una función del renderer: Instanciar el renderer y llamar a un método
$renderer = $PAGE->get_renderer('mod_hybridteaching');
function print_attendance_action($mform, string $beforeform) { echo $this>header(); echo $beforeform); echo $mform->display(); echo $this>footer(); }
También otra refactorización (alternativa o simultánea) consiste en separar la parte en la que se ejecutan acciones (sin ya interfaz, todos lso datos disponibles). Esa parte debe estar colocada al inicio dle script para, en su caso, poder hacer redirect() a la nueva lpágina.
Si ya no hay acciones que procesar, entonces SI se puede llamar a echo $OUTPUT->header(); para inicializar la página y mostrar un interfaz en esta página. Esa simple reorganización evitaría buena parte de esos bloques repetitivos espagetizados.