Bonjour,
Voici ma configuration de moodle :
- Moodle 2.6.5
- CAS authentification
J'ai remarqué quelques problèmes au niveau de la messagerie interne de moodle
- Les utilisateurs ne peuvent pas ajouter de contacts à leur liste.
- Les utilisateurs ne peuvent pas voir les conversation récentes.
Il n'y a pas d'erreurs dans les logs, ni dans la partie debug de moodle
Quand on essaye d'accéder à la page : https://<my site>/moodle-ent/message/index.php?viewing=search
Une fois la recherche terminé, il y a un lien symbolisé par un "+" a droite de chaque utilisateur trouvé, qui permet de l'ajouter à la liste de contact. Ce lien pointe vers :
https://<my
site>/moodle-ent/message/index.php?user1=159923&viewing=search&addcontact=108916&sesskey=lFnlDkRoUX
Quand on clique dessus, la page est rechargé mais le nouveau contacte n'apparait pas dans la liste.
J'ai cherché dans le code source et j'ai trouvé le fichier <moodle-root>/message/index.php, qui contient (line 46)
/message/index.php |
//the same param as 1.9 and the param we have been logging. Use this parameter.
|
$user1id = optional_param('user1', $USER->id, PARAM_INT); |
//2.0 shipped using this param. Retaining it only for compatibility. It should be removed.
|
$user1id = optional_param('user', $user1id, PARAM_INT); |
|
//the same param as 1.9 and the param we have been logging. Use this parameter.
|
$user2id = optional_param('user2', 0, PARAM_INT); |
//The class send_form supplies the receiving user id as 'id'
|
$user2id = optional_param('id', $user2id, PARAM_INT); |
|
$addcontact = optional_param('addcontact', 0, PARAM_INT); // adding a contact |
$removecontact = optional_param('removecontact', 0, PARAM_INT); // removing a contact |
$blockcontact = optional_param('blockcontact', 0, PARAM_INT); // blocking a contact |
$unblockcontact = optional_param('unblockcontact', 0, PARAM_INT); // unblocking a contact |
Comme on peut le voir, il y a une variable $addcontact, qui devrait prendre comme valeur $_GET["addcontact"] . Mais cette variable est toujours égale à 0 (vérifiée avec var_dump($addcontact) )
A la ligne 142 du fichier on peut voir :
/message/index.php |
/// Process any contact maintenance requests there may be
|
if ($addcontact != 0 and confirm_sesskey()) { |
die("coucou"); |
add_to_log(SITEID, 'message', 'add contact', 'index.php?user1='.$addcontact.'&user2='.$USER->id, $addcontact); |
message_add_contact($addcontact); |
redirect($CFG->wwwroot . '/message/index.php?viewing=contacts&id='.$addcontact); |
}
|
Le die("coucou") vient de moi, et il ne se produit jamais. Ce qui sous entend que la condition est toujours fausse. ($addcontact = 0)
Y a-t-il un moyen de résoudre ce problème?
Merci