Outils pour utilisateurs

Outils du site


local:my:modules

Widgets de page d'accueil : Mon Moodle Amélioré

Les widgets de la page my améliorée

La page My améliorée utilise sont propre système de widgets pour composer la structure du tableau de bord de l'utilisateur. Ces widgets peuvent être appelés dans l'ordre de parution dans la configuration centrale du composant local Ma page améliorée

Les widgets sont conçus pour adopter une apparence de blocs, afin de ne pas perturber la logique d'affichage si des colonnes de blocs latérales sont alimentées.

Extensibilité/customisation du composant

La fabrication de nouveaux widgets est une opération relativement simple, et consiste en l'écriture d'une fonction de nom préfixé par local_my_print_<widgetname>(&$excludedcourses, &$courseareacourses) dans un nouveau fichier local_modules.php à la racine du composant. Les modules générique sont codés dans le fichier modules.php au même endroit.

La fonction widget reçoit deux paramètres :

  • &$excludedcourses : un tableau des ids de cours qui devront être exclus des affichages de widget ultérieurs à ce widget. Ce tableau est complété par chaque widget pour indiquer aux widgets suivants les entrées de cours qui ont déjà été présentées à l'utilisateur, et éviter ainsi une multitude de redondances d'affichage. Le code de la fonction du widget devra ajouter à ce tableau les id des cours qu'elle présente dans son contenu.
  • &$courseareacourses : un tableau des cours qui vont être présentés dans les widgets de type 'Aires de cours', même si les aires de cours sont affichées plus bas dans la page. Ce tableau doit être utilisé en lecture uniquement.

La fonction widget est un pseudo renderer qui doit retourner le HTML contenu dans le widget. Vous pouvez générer directement ce contenu dans la fonction

  function local_my_print_mysimplewidget(&$excludedcourses, &$courseareacourses) {
      // Récupérer une liste de cours par une fonction personnalisée (associatif par id).
      $courses = local_my_get_custom_courseset();
  
      // Enlever les cours capturés par les aires de cours.
      if (!empty($courseareacourses)) {
          foreach ($courseareacourses as $cid) {
              if (array_key_exists($cid, $courses)) {
                  unset($courses[$cid]);
              }
          }
      } 
  
      // Enlever les cours exclus avant.
      if (!empty($excludedcourses)) {
          foreach ($excludedcourses as $cid) {
              if (array_key_exists($cid, $courses)) {
                  unset($courses[$cid]);
              }
          }
      } 
  
      // Ajouter ce qui reste aux exclusion.
      foreach (array_keys($courses) as $cid) {
          $excludedcourses[] = $cid;
      }
      
      $str = '';
      // Imprimer les listes...
      return $str;
  } 

Vous pouvez également comme dans certains widgets, utiliser un template qui devra se situer dans le répertoire templates du composant :

  function local_my_print_templatedwidget(&$excludedcourses, &$courseareacourses) {
      global $OUTPUT;
  
      // ... code des exlusions (voir ci-dessus)
  
      $template = new StdClass();
      $template->data1 = 'value1';
      // ....
      
      return $OUTPUT->render_from_template('local_my/customtemplate', $template);
  }

Liste des widgets

  • me : Mon identité (simple)
  • fullme : Mon identité (développée)
  • my_caption : Permet de renseigner une étiquette avec le contenu de son choix. S'affichera en haut.(étudiants et enseignants)
  • admin_stats : Des données statistiques utiles (en tant qu' administrateur)
  • my_courses : Mes cours (en tant qu'étudiant)
  • my_courses_slider : Mes cours affichés dans un slider ou en grille (en tant qu'étudiant)
  • my_courses_grid : Mes cours affichés en grille (en tant qu'étudiant)
  • authored_courses : Mes cours en tant qu'auteur (enseignant editeur)
  • authored_courses_slider : Mes cours affichés dans un slider ou en grille (enseignant éditeur)
  • managed_courses : Mes cours en tant que coordinateur (sur capacité local/my:iscoursemanager)
  • managed_courses_slider : Mes cours affichés dans un slider ou en grille pour rôle d'enseignant éditeur responsable de cours(sur capacité local/my:iscoursemanager)
  • teacher_courses : Une version combinée d'affichage des cours (en liste repliables et dépliables mémorisée en préférences) en tant qu'enseignant éditeur et non éditeur, qui affiche une icône signalétique différentiante des cours ou j'ai les droits d'édition.
  • teacher_courses_slider : Affichage des cours dans un slider pour les enseignants éditeurs ou non éditeur
  • teacher_courses_grid: Affichage des cours en grille pour les enseignants éditeurs ou non éditeur
  • available_courses : Les cours disponibles en auto-inscription
  • my_templates : Les modèles de cours qui m'appartiennent (nécessite rôle enseignant dans les modèles concernés)
  • course_areas : Des “zones de cours” statiques (qui peut pointer 9 catégories de cours) qui affichent les cours en les excluant de tous les autres widgets d'affichage.
  • course_areas2 : Une seconde “zones de cours” statiques (qui peut pointer 9 catégories de cours) qui affichent les cours en les excluant de tous les autres widgets d'affichage.
  • course_areas_and_availables : Idem ci-dessus, mais intègre aussi les cours accessibles en auto-inscription.
  • latestnews_full : Les nouvelles du site, en mode complet (messages développés)
  • latestnews_headers : Les nouvelles du site, en mode compact (titres)
  • latestnews_simple : Les nouvelles du site, en affichage simple (non hiérarchique)
  • my_heatmap : Une table de “température d'activité”
  • my_network : Mes sites accessibles du réseau (au sens du bloc User Mnet Hosts)
  • my_calendar : L'expression du bloc Calendar standard
  • course_search : L'entrée du moteur de recherche de cours
  • left_edition_column : Dédouble le colonnage et ajoute une colonne éditoriale sur la gauche.
  • static_<n> : Affichage d'un bloc d'un texte avec le message de son choix sur l'espace ou le widget est implanté

Impact du double colonage

Si le double colonage est activé par la présence du widget left_edition_column, alors il est possible de répartir les widgets entre la colonne de droite et le colonne de gauche. Ajoutez le suffixe _L pour obliger un widget à s'empiler dans la colonne de gauche.

Contenus statiques et conditionnels

Le widget static_<n> a un comportement particulier. Il permet en général de publier des contenus statiques sur le tableau de bord, entre les widgets, éventuellement lié à une condition à remplir. L'utilisation des widgets statiques requiert l'installation du plugin Contenus statiques qui fournira le principe d'édition.

La forme générale du nom de widget est static_<extension>.

  • Contenus simples : si <extension> est un entier (ex: static_1, static_2, etc), le contenu est unique et est affiché inconditionnellement.
  • Contenus dépendant d'une valeur de profil : si extension à la forme profile_field_<fieldshortname>_<modalvalue>, le contenu est unique et n'est affiché que si la valeur modale attendue est dans le profil de l'utilisateur.
  • Contenus dépendant du profil : si l'extension ne mentionne pas de valeur (profile_field_<fieldshortname>), alors l'administrateur pourra entrer un contenu différent par valeur modale disponible.

Valeurs modales

Les valeur modales sont les différentes valeurs disponibles pour un champ de profil. Si le champ est de type “liste” ce sont les valeurs de liste. Si il est du type “texte”, ce sera l'ensemble de tous les textes entrés pour ce champ dans moodle.

Les valeurs modales sont filtrées comme suit pour obtenir les clefs modales :

  • Les espaces et les '_' sont convertis en '-',
  • Tous les caractères non strictement alphanumériques et différents du tiret (-) sont supprimés.


Revenir au guide technique - Revenir à l'index du composant - Revenir à l'index des plugins - Retour au catalogue

local/my/modules.txt · Dernière modification: 2019/05/27 12:25 (modification externe)