La proposition de fonctionnalité est faite dans le tracker :
http://tracker.moodle.org/browse/MDL-11625
La solution est apportée sous forme d'un patch (ci-joint). Ce patch :
- touche à course/lib.php en ajoutant deux fonctions à la fin et en modifiant la fonction "make_editing_buttons()" pour ajouter l'icone de transfert.
- touche à course/mod.php en ajoutant un cas de réponse d'action, et en ajoutant l'entrée pour l'affichage du formulaire de confirmation/paramétrage
- ajoute un formulaire mod_change_course.html (confirmation paramétrage du transfert).
- ajoute un Web Service Ajax pour ce formulaire
- nécessite l'ajout de la librairie additionnelle lib/filesystemlib.php permettant la manipulation du container moodledata à haut niveau d'abstraction (fournie).
La solution ajoute une icone à la liste des boutons d'édition qui déclenche la procédure de déplacement de l'activité.
Le formulaire de confirmation permet de prendre quelques décisions sur la destination de l'activité :
- Le cours destinataire (doit être un cours où l'utilisateur est enseignant éditeur ou équivalent)
- Si Ajax est activé :
- Sinon :
- un choix simple (au début du cours ou à la fin de la dernière section du cours)
- La visibilité de l'activité/ressource dans le cours d'arrivée.
- L'activation (par défaut) du transport des ressources "standard" associées au module (ces ressources DOIVENT se situer dans un répertoire précis, formé ainsi :
[%%moodledata%%]/<courseid>/moddata/<modname>/<modid>
Tous autre fichier utilisé dans le module hors de ce répertoire ne sera pas déplacé.
Pour la phase d'évaluation et de stabilisation du procédé, il est possible de demander un rapport complet sur l'exécution du déplacement.
La ressource ou module d'activité ne change pas d'identité. C'est l'inscription du module dans le cours qui est entièrement mise à jour pour refléter le déplacement.
La procédure a été testée pour :
- les ressources
- les liens vers le web ou une URL
- les glossaires
- les forums
Etant encore expérimentale, je cherche quelques testeurs et fournisseurs d'idées sur le sujet.
(suite à la discussion http://moodle.org/mod/forum/discuss.php?d=80815 )