Hola,
estava intentant instal·lar el tema xtec2 en un moodle propi i hi ha hagut una cosa que m'ha portat una mica de corcoll i he pensat que ho podia compartir (val a dir que sóc força novell en això de administració i programació der moodle, per tant potser feia algun pas incorrecte, però he seguit les instruccions oficials).
Bé, aquí va, a xtec2/settings.php:
<?php
defined('MOODLE_INTERNAL') || die;
if ($ADMIN->fulltree) {
// Load xtec2_theme_onload only when in theme configuration page
global $PAGE, $CFG;
$PAGE->requires->js_init_code('xtec2_theme_onload();');
// [...]
Hi faria falta un check perquè només requereixi el xtec2_theme_onload quan tenim el tema xtec2 carregat, si no, quan estem en un altre tema i estem al menú de configuració el JS dóna error (la funció no existeix!) i no es carrega la part que permet desplegar els menús i submenús i es complica molt la navegació del lloc. El canvi és tan senzill com afegir un if ($CFG->theme == 'xtec2') abans de requerir el xtec2_theme_onload:
<?php
defined('MOODLE_INTERNAL') || die;
if ($ADMIN->fulltree) {
// Load xtec2_theme_onload only when in theme configuration page
global $PAGE, $CFG;
if ($CFG->theme == 'xtec2') {
// Només carreguem el xtec2_theme_onload() si estem en el tema XTEC si nó, el JS peta i ens quedem sense menú!
$PAGE->requires->js_init_code('xtec2_theme_onload();');
}
// [...]
fins hi tot es podria optar per només demanar-ho si estem a la pantalla de settings del tema xtec2, així potser és un xic més eficient (?):
<?php
// [...]
if ($CFG->theme == 'xtec2' &&
$PAGE->pagetype == 'admin-setting-themesettingxtec2') {
// [...]
Ja m'imagino que no deu ser una prioritat fer que el tema XTEC2 funciona en un moodle24 vanilla, però hi he perdut una estona i he pensat que no costava res comentar-vos-ho.
Salut!