Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
local:moodlescript:langage:freezecontext [2019/04/09 22:10] admin créée |
local:moodlescript:langage:freezecontext [2024/04/04 15:52] (Version actuelle) |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
===Effet=== | ===Effet=== | ||
- | Gèle le contexte de la pile d'exécution et interdit que l'exécution des instructions ne la modifie. | + | Verrouille le contexte d'exécution de la pile pour les instructions suivantes, jusqu'à la prochaine instruction de déverrouillage. Les variables de contexte des instructions exécutées après un verrouillage ne sont plus inscrites dans le contexte courant d'exécution. Ceci permet par exemple, de verrouiller la valeur implicite d'identifiants pointés par la pseudo variable "current". |
- | + | ||
- | Un certain nombre d'instructions peuvent altérer la valeur de variables de contexte au moment de leur exécution. Par exemple, la création d'une catégorie de cours positionne par défaut la catégorie courante de cours sur la nouvelle catégorie créée. Une succession de création de catégories utilisant le méta 'current' créera une succession de catégories imbriquées. | + | |
- | + | ||
- | ADD CATEGORY My Root TO id:1 | + | |
- | + | ||
- | ADD CATEGORY Cat 1 TO current | + | |
- | + | ||
- | ADD CATEGORY Cat 2 TO current | + | |
- | + | ||
- | ADD CATEGORY Cat 3 TO current | + | |
- | + | ||
- | Donnera l'arbre suivant : | + | |
- | + | ||
- | Miscelaneous > My Root > Cat 1 > Cat 2 > Cat 3 | + | |
- | + | ||
- | Pour créer successivement des "siblings" d'une même catégorie il faut alors geler le contexte pour que current représente toujours la catégorie initiale avant le premier ajout. Ainsi : | + | |
- | + | ||
- | ADD CATEGORY My Root TO id:1 | + | |
- | + | ||
- | FREEZE CONTEXT | + | |
- | + | ||
- | ADD CATEGORY Cat 1 TO current | + | |
- | + | ||
- | ADD CATEGORY Cat 2 TO current | + | |
- | + | ||
- | ADD CATEGORY Cat 3 TO current | + | |
- | + | ||
- | UNFREEZE CONTEXT | + | |
- | + | ||
- | Génèrera un arbre comme ceci : | + | |
- | + | ||
- | * Miscelaneous | + | |
- | * My root | + | |
- | * Cat 1 | + | |
- | * Cat 2 | + | |
- | * Cat 3 | + | |
===Syntaxe=== | ===Syntaxe=== | ||
Ligne 48: | Ligne 12: | ||
===Attributs particuliers=== | ===Attributs particuliers=== | ||
- | * **varname** : Le nom de la variable à créer sans espaces ni caractères spéciaux. | + | Cette commande n'a aucune attribut. |
- | * **litteral** : Une chaine de caractères littérale | + | |
- | + | ||
- | === Notes === | + | |
- | + | ||
- | La variable créée s'installe dans le contexte global de la pile d'exécution pour la durée de vie du script, jusqu'à ce qu'elle soit surchargée par une autre affectation. | + | |
- | + | ||
- | Lorsqu'une variable est créée à partir d'une variable, cette dernière doit être définie dans le contexte global du script, ou une valeur vide initialisera la nouvelle variable. | + | |
=== Autres défauts === | === Autres défauts === | ||
Ligne 61: | Ligne 18: | ||
Aucun | Aucun | ||
- | + | <html><!-- nomoodle --></html> | |
- | [[:local:moodlescript:languagespecification|Revenir à l'index du langage]] - [[:local:moodlescript|Revenir à l'index du composant]] | + | [[:local:moodlescript:languagespecification|Revenir à l'index du langage]] - [[:local:moodlescript|Revenir à l'index du composant]] |
+ | <html><!-- /nomoodle --></html> |