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

local:moodlescript:expressionsyntaxspecification [2022/10/18 09:31]
admin [forme générale d'un élément évaluable]
local:moodlescript:expressionsyntaxspecification [2024/04/04 15:52]
Ligne 1: Ligne 1:
-===== Spécification de syntaxe ===== 
-===== Expressions évaluables MoodleScript ===== 
  
-Les expressions évaluables MoodleScript,​ définies à partir de la version 2022081700 du moteur MoodleScript,​ permettent d'​écrire des tests sur des données de Moodle, indépendamment,​ ou au contraire en relation avec la situation courante de l'​utilisateur. Une syntaxe générique a été définie pour permettre d'​exprimer de nombreux cas de figure portant sur des données différentes. Cette syntaxe définit :  
- 
-   * Un jeu d'​opérateur logiques pris en charge pour la combinaison "​d'​éléments évaluables"​ 
-   * La forme générale d'un élément évaluable 
-   * Le format des valeurs "​littérales"​ 
- 
-==== Les opérateurs logiques ==== 
- 
-Ils sont au nombre de 4 et correspondent à des combinatoires logiques classiques :  
- 
-   * NOT (opérateur unaire, négation) 
-   * AND (binaire, ET logique) 
-   * OR (binaire, OU logique) 
-   * XOR (binaire, OU exclusif) 
- 
-Le traitement de la combinatoire logique ne supporte pas actuellement l'​imbrication (nesting), et donc le marquage par parenthèses. Les règles de précédence des opérateurs est imposé : NOT > AND > OR ou XOR. 
- 
-==== forme générale d'un élément évaluable ==== 
- 
-Un élément évaluable est une proposition à au plus deux opérandes :  
- 
-   * [Opérande 1] <​operateur>​ [Opérande 2] 
-   * [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. ​ 
- 
-Exemple :  
- 
-    * ''​user:​username:"​harry":​department = "​Physics"''​ ("​harry"​ est il lié au département de Physique) 
- 
-Le deuxième type porte sur des instances d'​objets,​ comme par exemple l'​opérateur '​isloggedin'​. Dans ce cas, les opérandes sont des références à des instances d'​objets Moodle et non des valeurs d'​attributs. 
- 
-Exemple :  
- 
-   * ''​user:​username:"​harry"​ isenrolled course:​current''​ ("​harry"​ a-t-il une inscription active dans le cours courant) 
-    
-D'​après les définitions différentes ci-avant, on voit que les opérandes peuvent être de trois types :  
- 
-   * Une valeur scalaire littérale (numérique ou textuelle) 
-   * Une référence à un objet 
-   * Une référence à un attribut scalaire d'un objet (ce cas est une extension du précédent) 
- 
-===Valeurs scalaires=== 
- 
-Doivent être notées entre guillemet si elles sont "​seules",​ c'est à dire que l'​opérande est à lui tout seul une valeur scalaire. 
- 
-===Référence à un objet=== 
- 
-Elle se décompose en deux ou trois segments qui doivent définir une instance unique d'un certain type d'​objet métier de Moodle. On utilise un "type d'​objet"​ en premier segment, les segments suivants doivent nommer un attribut identifiant et fixer une valeur de l'​identifiant. 
- 
-Formes générales :  
- 
-    [optype]:​[attribut identifiant]:​[valeur identifiante] 
- 
-ou 
- 
-    [optype]:​[deictic] 
- 
-Exemples :  
- 
-   * ''​user:​id:​364''​ 
-   * ''​user:​idnumber:​FC12654''​ (ou ''​user:​idnumber:"​FC12654"''​ aussi admis) 
-   * ''​course:​shortname:"​TRANSFORM 2020-2021"''​ 
-   * ''​category:​idnumber:"​MAGICS"''​ 
- 
-Cas particulier,​ utilisation de déictiques : 
- 
-Les déictiques sont des expressions dont la valeur change en fonction du contexte ou du moment de l'​invocation. Nous utiliserons le plus souvent le mot clef "​current"​ qui désignera l'​objet correspondant au contexte courant dans lequel le script est exécuté. 
- 
-Exemple :  
- 
-   * ''​user:​current''​ désigne l'​utilisateur correspondant à ''​$USER''​ 
-   * ''​course:​current''​ désigne le cours correspondant à ''​$COURSE''​ 
- 
-===Référence à un attribut final=== 
- 
-Une référence à un attribut final est construite comme une référence "​objet"​ suivi d'une mention d'​attribut. Ces attributs sont le plus souvent les attributs "​naturels"​ de l'​objet en base de données. Dans certains cas cependant, et pour aider à l'​unification du langage, certains noms d'​attributs peuvent être utilisés pour accéder à des données indirectes liées (par exemple, les champs personnalisés de profil d'un compte utilisateur). 
- 
-Forme générale :  
- 
-    [Ref objet]:​[attribut] 
- 
-Exemple :  
- 
-   * ''​user:​current:​department''​ 
-   * ''​course:​idnumber:"​TR2020":​visible''​ 
- 
-===Types d'​objets autorisés=== 
- 
-   * user : l'​utilisateur 
-   * course : le cours 
-   * category : la catégorie de cours 
- 
-[[:​local:​moodlescript|Revenir à l'​index du composant]] ​ 
local/moodlescript/expressionsyntaxspecification.txt · Dernière modification: 2024/04/04 15:52 (modification externe)