Bonjour,
Il est possible que le fichier lib.php ne soit pas chargé au moment où Moodle fait appel à toutes les fonctions qui observent l'évènement \core\event\user_loggedin.
La documentation sur l'API des évènements indique qu'il est possible de préciser un fichier à inclure via la propriété includefile. Je pense que cela devrait fonctionner en modifiant le fichier db/events.php ainsi :
$observers = array(Une autre solution serait de remplacer la fonction présente dans le fichier lib.php par une classe chargée automatiquement par Moodle. Dans le code source de Moodle, il y a cet exemple (avec le fichier db/events.php associé).
array(
'eventname' => '\core\event\user_loggedin',
'callback' => 'local_firsttimeconnect_on_login',
'includefile' => $CFG->dirroot . '/local/firsttimeconnect/lib.php',
),
);
La deuxième solution me parait plus moderne et évite d'avoir à empiler trop de fonctions dans le fichier lib.php.
Bonne journée,