Des blocs Moodle avec des préférences utilisateur, ça existe déjà !


Pour l’instant, je me concentre sur un projet de développement qui n’est pas directement lié à mon brevet mais qui me permet de faire quelques découvertes.

Dans le cadre du projet WriteUp, qui est un développement Moodle UCLouvain encore à l’état expérimental, je travaille sur le développement d’un bloc Moodle. Et j’analyse pas mal d’autres blocs existants pour m’inspirer.

Et là, je suis tombée sur des blocs intéressants pour mon brevet car ils permettent de définir des préférences utilisateur : block_course_overview et block_timeline.

Il s’agit de deux blocs natifs de Moodle, qui intègrent des options d’affichage qui sont enregistrées dans les préférences utilisateur : la vue d’ensemble des cours et la chronologie.

J’évoque aussi un bloc de plugin additionnel, le sélecteur de thème, qui est un bloc paramétrable simple qui est intéressant à étudier sur le plan technique.

block_COURSE_overview

Pour mon brevet, il serait sans doute intéressant de partir de block_course_overview pour permettre aux étudiants de définir les cours pour lesquels ils souhaitent activer les social analytics. Le mécanisme à prévoir est assez proche de celui qui permet de définir les cours favoris dans ce bloc.

Il y aura 2 approches pour le réaliser : adapter ce bloc ou en construire un nouveau qui s’en inspire. La seconde option est sans doute la plus sage et ne doit pas m’empêcher de réexploiter les fonctions du module initial, via une dépendance.

block_timeline

Dans block_timeline, ce sont plutôt des filtres d’affichage qui sont enregistrés, mais c’est aussi à épingler. Par exemple pour définir le rythme de notification ou la période de référence.

BLOCK_THEME_SELECTOR

Les deux premiers sont assez complexes car ils intègrent des paramètres de config admin et des paramètres de config gestionnaire et ils utilisent les templates mustache pour le rendu des menus.

Dans les plugins additionnels, le bloc paramétrable le plus simple (même s’il ne permet pas de gérer des préférences utilisateur), c’est Block_theme_selector.
La gestion des préférences utilisateur, ce n’est pas très compliqué comme décrit dans la doc sur la gestion des préférences utilisateur.

Il permet à l’utilisateur de choisir un thème et d’opérer des actions lorsque le menu de sélection du formulaire est modifié.
La gestion est assez simple puisque le formulaire est définit dans le fichier de définition du bloc et il y a un fichier javascript dans amd/src avec des avtions onChange de ce menu.

Temps de travail sur cet article : 1/2 jour