Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
local:moodlescript:expressionsyntaxspecification [2022/10/18 09:38] 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 68: | 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 93: | ||
* ''user:current:department'' | * ''user:current:department'' | ||
* ''course:idnumber:"TR2020":visible'' | * ''course:idnumber:"TR2020":visible'' | ||
+ | |||
+ | |||
+ | ====Détail des implémentations==== | ||
===Types d'objets autorisés=== | ===Types d'objets autorisés=== | ||
- | * user : Un utilisateur (profil complet) | + | * **user** : Un utilisateur |
- | * course : Un cours | + | * **user_profile_field** : un champ de données personnalisé de l'utilisateur |
- | * category : Une catégorie de cours | + | * **course** : Un cours |
- | * cohort : Une cohorte | + | * **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' ?" | ||
+ | |||
+ | |||
- | [[:local:moodlescript|Revenir à l'index du composant]] | + | <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> |