Outils pour utilisateurs

Outils du site


local:moodlescript:expressionsyntaxspecification

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
Prochaine révision
Révision précédente
local:moodlescript:expressionsyntaxspecification [2022/08/17 11:39]
admin [forme générale d'un élément évaluable]
local:moodlescript:expressionsyntaxspecification [2024/04/04 15:52] (Version actuelle)
Ligne 1: Ligne 1:
 +<​html><​!-- nomoodle --></​html>​{{ :​blocks:​logo-apl.png?​nolink |}}<​html><​!-- /nomoodle --></​html>​
 +
 ===== Spécification de syntaxe ===== ===== Spécification de syntaxe =====
 ===== Expressions évaluables MoodleScript ===== ===== Expressions évaluables MoodleScript =====
Ligne 24: Ligne 26:
  
    * [Opérande 1] <​operateur>​ [Opérande 2]    * [Opérande 1] <​operateur>​ [Opérande 2]
-   * [Opérande 1] <​operateur>​ (cette forme est donc admise pour un opérateur à une opérande.)ne +   * [Opérande 1] <​operateur>​ (cette forme est donc admise pour un opérateur à une opérande).
  
 Deux types d'​opérateurs sont définis : un type portant sur les "​données",​ comme par exemple les opérateurs d'​évaluation '​='​ ou '<'​. Les opérandes sont alors des "​valeurs"​ finales d'​attributs,​ comparables arithmétiquement ou textuellement. ​ Deux types d'​opérateurs sont définis : un type portant sur les "​données",​ comme par exemple les opérateurs d'​évaluation '​='​ ou '<'​. Les opérandes sont alors des "​valeurs"​ finales d'​attributs,​ comparables arithmétiquement ou textuellement. ​
Ligne 37: Ligne 39:
  
    * ''​user:​username:"​harry"​ isenrolled course:​current''​ ("​harry"​ a-t-il une inscription active dans le cours courant)    * ''​user:​username:"​harry"​ isenrolled course:​current''​ ("​harry"​ a-t-il une inscription active dans le cours courant)
-   + 
 +La liste complète des opérateurs "​fonction"​ supportés est donnée plus loin. 
 D'​après les définitions différentes ci-avant, on voit que les opérandes peuvent être de trois types :  D'​après les définitions différentes ci-avant, on voit que les opérandes peuvent être de trois types : 
  
Ligne 66: Ligne 70:
    * ''​course:​shortname:"​TRANSFORM 2020-2021"''​    * ''​course:​shortname:"​TRANSFORM 2020-2021"''​
    * ''​category:​idnumber:"​MAGICS"''​    * ''​category:​idnumber:"​MAGICS"''​
 +   * ''​group:​idnumber:"​GRP-A"''​
  
 Cas particulier,​ utilisation de déictiques : Cas particulier,​ utilisation de déictiques :
Ligne 90: Ligne 95:
  
  
-[[:​local:​moodlescript|Revenir à l'​index du composant]] ​+====Détail des implémentations==== 
 + 
 +===Types d'​objets autorisés=== 
 + 
 +   * **user** : Un utilisateur 
 +   * **user_profile_field** : un champ de données personnalisé de l'​utilisateur 
 +   * **course** : Un cours 
 +   * **category** : Une catégorie de cours 
 +   * **cohort** : Une cohorte 
 +   * **group** : Un groupe, dans le contexte de cours courant 
 + 
 +===Opérateurs supportés=== 
 + 
 +   * **=** : est égal 
 +   * **!=** : est différent 
 +   * **<** ou **<=** : est inférieur ou inférieur ou égal 
 +   * **>** ou **>=** : est supérieur ou supérieur ou égal 
 +   * **~** : contient (regex) 
 +   * **!~** : ne contient pas (regex)  
 + 
 +===Opérateurs "​fonctions"​ supportés=== 
 + 
 +   * **hasrolein** : a un rôle dans le contexte | <​userref>​ hasrolein <​courseref|categoryref>​ 
 +   * **isenrolledin** : a une inscription active dans le contexte | <​userref>​ isenrolledin <​courseref|categoryref>​ 
 +   * **hasloggedin** : s'est connecté au moins une fois | <​userref>​ haslooggedin 
 +   * **hascompleted** : a achevé un contexte | <​userref>​ hascompleted <​courseref>​ 
 +   * **hasstarted** : a commencé à travailler (au sens de l'​achèvement) | <​userref>​ hasstarted <​courseref|categoryref>​ 
 +   * **isincategory** : est enfant de la catégorie | <​courseref|categoryref>​ isincategory <​categoryref>​ 
 +   * **isincattree** : est dans l'​arborescence | <​courseref|categoryref>​ isincattree <​categoryref>​ 
 +   * **isinsubs** : est dans une des sous-catégories | <​courseref|categoryref>​ isinsubs <​categoryref>​ 
 +   * **isempty** : est vide | <​categoryref|cohortref>​ isempty 
 +   * **isingroup** : est dans le groupe | <​userref>​ isingroup <​groupref>​ 
 + 
 +===Objets à venir (prospective)=== 
 + 
 +   * **module** : Module de cours (activité ou ressource) 
 +   * **badge** : Badge 
 + 
 +===Opérateurs "​fonctions"​ à venir (prospective)=== 
 + 
 +   * **isin** : est dans la cohorte ou le groupe <​userref>​ isin <​cohortref|groupref>​ 
 +   * **hasbadge** : a acquis le badge 
 +   * **hascompleted** : extension au context <​moduleref>​ en plus du contexte <​courseref>​ 
 + 
 +===Fonctionnalités à venir=== 
 + 
 +   * Expressions nommées : Des expressions évaluables associées à un nom pour pouvoir être utilisées à plusieurs endroits et définies de manière unique et centralisée. Par anticipation,​ on note la nécessité d'une syntaxe facilement discriminable pour aller chercher une expression dans un catalogue. Une proposition peut être :  
 + 
 +   ::<​evaluablerulename>​ 
 + 
 +qui discriminera nettement l'​appel de référence des syntaxe "par membres"​ des appels aux attributs ou aux références d'​objet. Le nom de règle doit être un token unique acceptant les caractères alphanumériques et le '​_'​ sans espaces. L'​usage de caractères étendus ou accentués est déconseillé. 
 + 
 +Ainsi la simple mention de  
 + 
 +   ::​myrule1 
 + 
 +ira rechercher la définition complète de la règle dans le catalogue de règles nommées. La localisation du catalogue est dans l'​accessoire tool_moodlescript,​ le plugin habilité à proposer des interfaces administrateur. 
 + 
 +A titre de prospective,​ et afin de favoriser l'​usage des règles nommées, on peut envisager un passage de paramètres à une règle nommée, par exemple : 
 + 
 +   ::​myrule1 <​param1>​ "<​string param2>"​ 
 + 
 +qui proposera des valeur à substituer dans l'​expression nommée sous les formes classiques de variables shell : $1, $2, etc... L'​exemple suivant montre ce que pourrait être l'​écriture d'une telle expression : 
 + 
 +   ​user:​idnumber:​$1:​username ~ ^a 
 + 
 +Pour une règle disant "est ce que le username de l'​utilisateur donné en paramètre par $1 commence par '​a'​ ?" 
 + 
 + 
 + 
 + 
 +<​html><​!-- nomoodle --></​html>​ 
 +[[:​local:​moodlescript|Revenir à l'​index du composant]] ​ - [[:​plugins|Retour à l'​index des plugins]] - [[:​pluginsets|Retour à l'​index des ensembles]] - [[::​start|Retour au catalogue]] 
 +<​html><​!-- /nomoodle --></​html>​
local/moodlescript/expressionsyntaxspecification.1660729180.txt.gz · Dernière modification: 2024/04/04 15:52 (modification externe)