Outils pour utilisateurs

Outils du site


local:my:modules

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Révision précédente
local:my:modules [2019/05/27 12:25]
local:my:modules [2020/05/15 10:24] (Version actuelle)
florence
Ligne 1: Ligne 1:
 +<​html><​!-- nomoodle --></​html>​{{ :​blocks:​logo-apl.png?​nolink |}}<​html><​!-- /nomoodle --></​html>​
 +===== 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)
 +   * ''​static_<​n>''​ : Affichage d'un bloc d'un texte avec le message de son choix sur l'​espace ou le widget est implanté ​
 +   ​* ​ ''​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)
 +   * ''​my_favorite_courses_by_role_grid''​ :Mes cours favoris avec prise en compte des rôles
 +   * ''​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 [[:​blocks:​UserMnetHosts|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.
 +
 +
 +<​html><​!-- nomoodle --></​html>​
 +   * [[local:​my:​userguide|Guide d'​utilisation et cas d'​usage]]
 +<​html><​!-- /nomoodle --></​html>​
 +
 +==== 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 [[:​local:​staticguitexts|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.
 +
 +
 +<​html><​!-- nomoodle --></​html>​
 +----
 +
 +[[:​Local:​My:​Technique|Revenir au guide technique]] - [[:​Local:​My|Revenir à l'​index du composant]] - [[:​plugins|Revenir à l'​index des plugins]] - [[:​start|Retour au catalogue]]
 +<​html><​!-- /nomoodle --></​html>​