Esup-Moodle

Skip to end of metadata
Go to start of metadata

La plateforme pédagogique Moodle est aujourd'hui massivement utilisée dans nos établissements. Pour les étudiants comme pour les personnels, elle fait partie des services qu'il importe de mettre en avant, notamment donc au travers de l'ENT.

Aussi cet espace Projet Canal Moodle présente les alternatives qui s'offrent aux exploitants Esup autour de la problématique d'intégration Moodle dans un ENT (intégration dynamique, hors IFrame et simple lien statique direct). Ces alternatives correspondent à des travaux et retours d'expériences de plusieurs établissements, aussi n'hésitez pas à contribuer à cet espace pour le compléter et le faire évoluer.

Solutions fonctionnelles

CMoodle-proxy-portlet

Suite à l'application historique du Canal Moodle, une alternative plus légère est maintenant également proposée, nous la nommons CMoodle-proxy-portlet.

Correspondant à des script PHP intégrés à Moodle allié à l'usage de WebProxyPortlet, CMoodle-proxy-portlet propose d'utiliser les possibilités offertes par

  • Moodle d'une part pour la mise en place de scripts personnalisés 'my' permettant de générer un HTML spécifique en utilisant l'API haut niveau de Moodle directement
  • WebProxyPortlet d'autre part côté EsupPortail pour l'affichage de cette page 'my' au travers d'EsupPortail.

Cette solution correspond donc finalement simplement à un script php moodle qui (par exemple) affiche la liste des cours d'un utilisateur donné (en reprenant une structuration HTML portlet JSR168), la page résultante de ce script est alors utilisée via un WebProxyPortlet de l'ENT.

Cela permet de proposer une/des portlet(s) Moodle « like » dans l'ENT de manière élégante et efficace.

En V0.4 de cmoodle-proxy-portlet, nous proposons uniquement un premier script moodle-ent.php qui permet simplement donc de lister les cours d'un utilisateur donné en utilisant l'API Moodle.

En lieu et place d'un seul script moodle-ent.php, vous trouverez en fait 2 scripts nommés moodle-ent.php_moodleV1 et moodle-ent.php_moodleV2 : à vous de sélectionner celui qui correspond à la version de votre Moodle (V1 ou V2) et de le renommer en moodle-ent.php.

Un appel à contributions est lancé pour :

  • proposer les mêmes fonctionnalités que ce que peut proposer le Canal Moodle (un second script php moodle de quelques dizaines de lignes devrait permettre de proposer le listing des ressources Moodle récemment modifiées)
  • proposer d'autres scripts cmoodle-proxy-portlet (ou/et d'autres idées de scripts utilisant les possibilités Moodle)

On propose le téléchargement de CMoodle-proxy-portlet au travers de la forge du Canal Moodle  sourcesup (onglet fichiers pour télécharger) :

https://sourcesup.cru.fr/projects/cmoodle/

Paramétrage de WebProxyPortlet

Après avoir installé le script moodle-ent.php sur votre moodle, vous pourrez le tester directement en utilisant une URL du type (par exemple) :

http://moodle.mon-univ.fr/moodle/my/moodle-ent.php?uid=jtest
ou http://moodle.mon-univ.fr/moodle/local/moodle-ent.php?uid=jtest par exemple pour un Moodle 2.x -> vous aurez alors installé le script dans /var/www/html/moodle/local au lieu de lib ...

jtest étant ici l'identifiant d'un utilisateur étudiant/personnel, cette page renvoie via une structure HTML épurée (utilisant des classes portlet) la liste des cours de l'utilisateur jtest.

C'est le portail au travers de WebproxyPortlet qui construira une telle url dynamiquement en récupérant l'identifiant de l'utilisateur connecté. En imaginant que cet identifiant correspond à l'attribut uid de votre utilisateur uPortal/EsupPortail, il vous faudra vous assurer que WebproxyPortlet a la possibilité de récupérer cet attribut uid par le portail. Pour ce faire vous pouvez vérifier que le portlet.xml de WebproxyPortlet contient bien la déclaration d'un user-attribute ayant pour name uid.

Vous pourrez alors publier une WebproxyPortlet en indiquant comme 'base url' ( edu.wisc.my.webproxy.webproxy.general.config.sBaseUrl ) quelque chose comme :

http://moodle.mon-univ.fr/moodle/my/moodle-ent.php?uid=${uid}

Copie d'écran

Canal Moodle (obsolète)

Le Canal Moodle est aujourd'hui la solution la plus utilisée par les établissements EsupPortail pour intégrer dynamiquement Moodle.

Cette solution utilise la technologie IChannel d'uPortal (socle d'EsupPortail), technologie aujourd'hui dépréciée pour laisser la place à la technologie portlet 1.0 JSR168, et bientôt portlet 2.0 JSR 286.

Solution aboutie, elle permet de

  • lister les cours auxquels est abonné l'individu connecté sur le portail ENT,
  • lister les ressources Moodle sur lesquels il y a eu des modifications depuis la dernière visite.

Validée sur des Moodle 1.5, 1.6, 1.7 et 1.8 sur des ENT EsupPortail basés sur les socle uPortal 2.4 et 2.5, elle se connecte directement à la base de données Moodle (à défaut de pouvoir utiliser l'API Moodle via WebService puisque Moodle V1 ne supporte pas ce type de technologies nativement).

On retrouve la forge du Canal Moodle sourcesup (onglet fichiers pour télécharger) ici :

https://sourcesup.cru.fr/projects/cmoodle/

Une documentation est disponible au téléchargement dans l'onglet Documents : Moodle_channel_for_uPortal.1.2.pdf (vous y trouverez notamment des copies d'écran).

Pistes d'autres alternatives

Nouvelle Portlet Moodle ?

Le passage du canal Moodle en portlet a été envisagé plusieurs fois, l'idée serait entre autre d'utiliser les nouvelles possibilités WS offertes par Moodle V2... à voir si un nouveau développement de ce type serait effectivement opportun (notamment au regard de l'alternative proposé par CMoodle-proxy-portlet).

Plus d'informations dans le forum Canal Moodle notamment :

https://sourcesup.cru.fr/forum/forum.php?thread_id=2612&forum_id=781&group_id=254

Basic LTI Portlet ?

Une nouvelle portlet a récemment vu le jour côté Jasig du nom de Basic LTI Portlet :

https://wiki.jasig.org/display/PLT/Basic+LTI+Portlet

Elle permettrait d'intégrer des composants de LMS dans l'ENT, Moodle implémenterait ces spécifications.

Nous n'avons pas de retour d'expérimentations autour de ces technologies. Cette piste est à surveiller.TI+Portlet|https://wiki.jasig.org/display/PLT/Basic+LTI+Portlet]

Elle permettrait d'intégrer des composants de LMS dans l'ENT, Moodle implémenterait ces spécifications.

Nous n'avons pas de retour d'expérimentations autour de ces technologies. Cette piste est à surveiller.

Labels
  • None