Bonjour,
Merci pour votre retour. Le détail est le suivant :
- Inscription via le formulaire moodle. Ce
formulaire est une duplication du formulaire d'inscription moodle sign up
adapté à nos besoins
- Inscription ok : l'apprenant est bien
enregistré dans la base moodle mais il n'est pas inscrit au méta-cours
- Pour cette auto-inscription au méta-cours on
utilise la fonction ajouter un utilisateur role_assign
·A savoir le métacours est connu via l'url du
formulaire.
·En effet nous utilisons une url esthétique et en
comparant le nom de cette url à celui du métacours (le champ « shortname »
de la table mdl_course) , on est en mesure de connaître l'id du métacours (le
champ « id » de cette même table) dans lequel l'apprenant doit être inscrit
·Une fois l'id récupéré, cela nous permet de
connaître le contextid du métacours (via un context_course ::instance($idmetacours)),
on applique la fonction role_assign (role_assign($roleid, $user->id,
$contextid, '', 0, '')). $roleid==5 car on cherche à enregistrer des étudiants,
$contextid correspond donc au contextid du cours que l'on vient de récupérer. L'utilisateur
est alors enregistré dans le métacours correspondant de la table mdl_role_assignments.
·Il semblerait que l'utilisateur soit bien
enregistré dans cette table « mdl_role_assignments » (cf captures d'écran
ci-joint - capture OK si cela fonctionnait, capture KO ce que l'on a aujourd'hui)
A savoir que cette inscription fonctionne parfaitement sur
moodle 1.8.
Merci d'avance si vous aviez une idée d'un paramètre que
nous aurions omis de régler avec la version moodle 2.7.1
Sylvain