Closed gmanaud closed 1 year ago
Effectivement, je découvre ce problème... C'est bizarre : le but de ce code est juste de passer le cours en "caché". Et la modification cherche ensuite ce "maildisplay" qui se trouve... je sais pas où ! Je vais essayer de comprendre tout cela.
Alors j'ai trouvé une façon de ne plus avoir l'erreur, en remplaçant, dans le fichier delete_course.php
les lignes 117/118
$from = $CFG->supportname; $from->maildisplay = false;
par
$from = new stdClass; $from->maildisplay = false;
Mais j'avoue que je ne sais pas à quoi sert la ligne $from = $CFG->supportname;
que j'ai supprimée. Est-elle importante ?
Par ailleurs je ne sais pas si c'est censé envoyer un mail en même temps, et donc si ça modifie la fonctionnalité, car les mails sont bloqués sur notre serveur de test.
En ajoutant $datahide = new stdClass;
, cela résout le problème pour cacher le cours. Je pense que l'erreur suivante provient donc de l'envoi des mails à l'enseignant (ou aux enseignants) qui exécute la mise à la corbeille (ligne 123). En gros, s'il n'y a qu'un prof, on lui envoie le mail standard. S'il y en a plusieurs, cela envoie un mail à l'enseignant qui a supprimé avec information pour dire que d'autres enseignants ont été détectés et de se concerter avec eux. Idem, un mail est envoyé aux autres enseignants pour les informer de la suppression et qu'ils peuvent restaurer le cours en se concertant avec l'enseignant de départ.
Si l'erreur disparait avec l'ajout d'un stdClass pour le cours, il faudrait je pense faire pareil pour les mails ! Je vais voir comment faire.
EDIT : ta réponse vient juste d'apparaitre, je rajoute un élément. Le supportname récupère la variable Moodle qui indique l'envoyeur du mail indiquant que le cours a été supprimé. J'ai directement pris le supportname, ou "Nom d'assitance", qui se trouve dans Administration->Serveur->Contact d'assistance.
Le temps de reconfigurer mon serveur local pour l'envoi de mail et je teste tout cela au plus vite.
Re-bonjour, c'est donc bien un souci de stdClass. On en a créé un pour $datahide, mais il fallait aussi en créer un pour $a (infos passées dans le corps du message) et pour $from (informations de l'envoyeur). Manquait également pour $from de spécifier dans cet objet la variable $from->email. Et de cette façon, je reçois bien les emails. Il ne semble plus y avoir d'erreur de mon coté, si tu peux confirmer ! :) Olivier
Oui, ça marche nickel. Merci !
Génial, je ferme ! Un petit rajout toutefois, le mail envoyé ne contenait pas la période de suppression qu'on définir dans l'admin. Je viens de poser les modifications dans delete_course.php. Olivier
Bonjour,
Sur Moodle 4.1 et PHP 8.1, quand j'accède au gestionnaire de cours et que je clique sur « Mettre à la corbeille », après validation j'arrive sur un message d'erreur
et en poursuivant encore, j'obtiens
Le cours est toutefois bien déplacé dans la catégorie corbeille.
En ajoutant
$datahide = new stdClass;
dans le fichierdelete_course.php
, juste avant la ligne 109, je n'ai plus cette erreur.Par contre à la place j'ai :
Et là par contre je ne sais pas comment faire ;) Une idée ?