Après plus d’un an de pause dans mon brevet, j’ai envie de reprendre avec quelque chose de concret et de travailler sur le développement du bloc de flux social. Dans cet article, je vais analyser les blocs paramétrables et tenter de développer un bloc de base qui pourra être exploité pour afficher le flux social d’un utilisateur, quelque soit l’approche utilisée pour générer les données (analytics natif ou LRS).
Analyse des blocs existants
Dans les blocs existants, je note que les préférences utilisateurs sont définies via l’appel de fonction set_user_preference() et les préférences sont récupérées via la fonction get_user_preferences().
Les valeurs par défaut pour les préférences utilisateur sont définies au début de lib.php. C’est aussi dans ce fichier qu’on trouve la fonction qui permet de définir les préférences utilisateur.
Le fichier settings.php sert à définir toutes les options paramétrables par l’administrateur, à ne pas confondre avec les préférences utilisateur.
UN bloc paramétrable De BASE
Pour faire simple, je développe un bloc paramétrable qui affiche un contenu différent selon le choix de paramètre. Le bloc sera paramétrable au travers de deux options :
- un menu qui permet de choisir une option parmi 3 (option1, option2 et option3) qui déclenche l’affichage d’un texte différent selon l’option choisie;
- un menu qui permet de faire une sélection parmi la liste des cours de l’utilisateur (plusieurs choix possibles) et qui affiche la liste des cours sélectionnés.
Dans mon cas, il n’y a pas de paramètres de configuration admin pour le bloc, donc pas de fichier settings.php.
Mon bloc block_customprefs est disponible dans mes projets github :
https://github.com/zabellemotte/block_customprefs
Et voici quelques captures d’écran qui montrent son fonctionnement :


Un BLOC avec du code javascript en cache
Le code javascript qui permet d’afficher ou de masquer les éléments de formulaire a été placé dans le dossier amd, avec une version minimifiée pour rendre le plugin plus fluide.
Temps de travail sur cet article (développement compris) : 3 jours