Table des matières

Widgets Mon Moodle Amélioré

Les widgets de la page my améliorée

La page My améliorée utilise des widgets pour composer une structure personnalisée 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 blocs sont mobilisés dans les espaces latéraux de Moodle.

Liste des widgets

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>.

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.

Le nom du champ et la valeur modale sont séparés par un DOUBLE “_”. Les noms de champs de profil contenant un seul '_' sont donc admis.

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

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 :

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);
  }


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