[Filtre] Page de configuration et contexte

[Filtre] Page de configuration et contexte

par Sébastien Mehr,
Nombre de réponses : 5
Avatar Développeurs Avatar Testeurs

Bonjour à tous,

je travaille actuellement au développement d'un filtre permettant aux utilisateurs (principalement des enseignants en informatique :D) d'utiliser simplement la librairie prism.js pour faire de la coloration syntaxique au sein de leur cours.

Dans la doc officielle de développement d'un filtre, un chapitre concerne la création d'une page de configuration permettant d'ajouter, que ce soit au niveau global de la plateforme ou au niveau local selon le contexte (au sein d'un cours ou d'une activité), des paramètres au filtre.

Pour récupérer ensuite ces paramètres, la doc précise le code à utiliser :

  • Pour récupérer la configuration d'un paramètre au niveau global de la plateforme :
get_config('filter_helloworld', 'language');
  • Pour récupérer la configuration d'un paramètre au niveau local (une activité par exemple) :
$lang = $this->localconfig['language'];

Dans mon exemple de paramètre, il s'agit de permettre à l'enseignant de préciser à la libraire quel langage de programmation il souhaite "coloriser" via une liste déroulante.

Grâce à la doc, j'arrive bien à récupérer la valeur du paramètre lorsque l'on configure un langage au niveau global de la plateforme via le menu de gestion du filtre. Cela fonctionne également lorsque, dans une activité ou une ressource, l'utilisateur effectue un paramétrage du filtre dans celle-ci. (Par exemple au niveau de l'administration du site, par défaut le langage est défini sur "PHP" et localement l'utilisateur choisit "Javascript" pour son étiquette ou sa page).

En revanche, je n'arrive pas à récupérer ce paramètre lorsque celui-ci est définit au niveau du cours via le bloc administration du cours > Filtre. La page de configuration est bien existante, le paramètre est bien enregistré lorsqu'on le modifie mais celui-ci n'a aucun effet sur le cours.

Je me demandais donc quelle est "la zone d'effet" d'un paramètre d'un filtre lorsque celui-ci est configuré au sein d'un cours ?

Existe-t-il un code spécifique permettant de récupérer ce paramètre dans le contexte du cours ?

Je me pose ces questions car je souhaiterai (si possible) permettre à l'enseignant de pouvoir choisir un langage de programmation au niveau de son cours afin que ce paramètre se répercute sur toutes les activités de son cours dont le paramètre n'a pas été modifié localement.


Merci d'avance pour votre aide.


Seb

Moyenne des évaluations Utile (1)
En réponse à Sébastien Mehr

Re: [Filtre] Page de configuration et contexte

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Salut Seb,

Superbe idée, dont le besoin a déjà été évoqué dans plusieurs fils !

Peux-tu, dans un premier temps, préciser la version de Moodle que tu cibles ?... même si je crois que les filtres n'ont pas beaucoup changé entre la 2.X et la 3.X.

Autre question, et là je me sens bête, je ne trouve pas de filtre avec une configuration locale (propre à une activité). Dans la doc, il est indiqué qu'on pourrait, par exemple, lier un glossaire A à un forum A et un glossaire B à un forum B. Mais, moi, la seule chose que je peux paramétrer dans les filtres, c'est de l'activer ou le désactiver...

filtres dans un forum

Où est mon erreur ? J'ai la même limite au niveau du cours... Le seul endroit où j'accède à des paramètres de filtre, c'est au niveau de l'administration globale de la plateforme.

A bientôt,
Patrick

En réponse à Patrick Lemaire

Re: [Filtre] Page de configuration et contexte

par Sébastien Mehr,
Avatar Développeurs Avatar Testeurs

Hello Patrick,

Effectivement, j'ai honteusement oublié de préciser qu'il s'agit d'un développement pour Moodle 3.x. clin d’œil

L'apparition ou non des paramètres au niveau local d'un filtre est conditionnée par l'existence du fichier filterlocalsettings.php.

Dès lors que ce fichier existe dans le répertoire du filtre et que celui-ci définit des éléments de formulaire comme précisé dans la doc, le menu apparaît bien dans l'édition des activités et des ressources :


Il me semble que la plupart des filtres présents de base avec Moodle (dont le glossaire) n'utilise pas de paramètres locaux que ce soit au niveau du cours (et c'est là que ça m'embête car je n'ai pas trouvé d'exemple :D) ou au niveau d'une activité/ressource (mais la documentation explicite bien ce cas de figure).

L'exemple que tu cites est repris au tout début de cette page de documentation.

J'imagine que l'expression "[...] for example, you can do things like[...] Have the glossary auto-linking filter link words from glossary A in forum A, and from glossary B in forum B." est un exemple des possibilités de la mise en place d'une configuration locale d'un filtre sans pour autant être disponible de base dans Moodle.

Du coup par rapport à ma première question, j'ai fini par trouvé une solution sur ce message datant de 2015.

Pour résumer, il n'y a aucune fonction existante pour récupérer simplement les paramètres d'un filtre selon le contexte du cours. Il faut passer par l'ajout d'une fonction dédiée. Un bel exemple de mise en œuvre est disponible ici (Merci le SEMM de Lille1 !)


Je vais pouvoir avancer ! cool


Seb

Moyenne des évaluations Utile (2)
En réponse à Sébastien Mehr

Re: [Filtre] Page de configuration et contexte

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Mince, alors tu confirmes que l'exemple donné dans la doc n'est pas possible ?! On ne peut pas associer un glossaire spécifique à un forum spécifique ?!! Tant pis... mais c'est dommage d'en parler dans la doc.

En tout cas, merci pour ces retours très clairs et détaillés ! Oui

En fonction de ton état d'avancement, on pourrait reprendre le développement pour un code sprint lors du prochain Moodle-Moot ?!

A bientôt,
Patrick

En réponse à Patrick Lemaire

Re: [Filtre] Page de configuration et contexte

par Sébastien Mehr,
Avatar Développeurs Avatar Testeurs

Hello Patrick,

Je ne sais pas si mon modeste filtre mérite tant d'attention au MoodleMoot 2017, mais je compte bien publier quelque chose de présentable d'ici là sur Github. sourire


Seb

En réponse à Sébastien Mehr

Re: [Filtre] Page de configuration et contexte

par Francois Bonicalzi,

Bonjour,

Le « code sprint » MoodleMoot 2017 est ouvert pour accueillir les différentes propositions de projets sur le forum du cours : http://lyon3-2017.moodlemoot.fr/course/view.php?id=102

J'ai parcouru votre proposition de filtre.
Cela vous intéresserait-il d'en faire une proposition pour le "code sprint" du MoodleMoot 2017.

Cordialement

François Bonicalzi

Animateur du « code sprint » du MoodleMoot 2017