76 lines
2.5 KiB
Markdown
76 lines
2.5 KiB
Markdown
# Les conditions
|
|
|
|
## Un condition
|
|
|
|
Les conditions permettent d'ajouter ou de supprimer des propriétés à une [variable](../variable/README.md), une [famille](../family/README.md), un [fichier](../service/file.md), un [port](../service/port.md) ou une [ip](../service/ip.md) suivant le contexte.
|
|
|
|
Nous allons nous concentrer ici sur la condition hidden_if_in, mais [il existe d'autre conditions](conditions.md).
|
|
|
|
La condition hidden_if_in permet de cacher une variable où une famille à l'utilisateur, mais cette variable est toujours accessible dans un calcul, un vérification ou dans un template.
|
|
|
|
```
|
|
<variables>
|
|
<variable name="condition" type="boolean"/>
|
|
<variable name="my_variable"/>
|
|
</variables>
|
|
|
|
<constraints>
|
|
<condition name="hidden_if_in" source="condition">
|
|
<param>True</param>
|
|
<target>my_variable</target>
|
|
</condition>
|
|
</constraints>
|
|
```
|
|
|
|
Le [paramètres](../param/README.md) de la condition permet de définir les valeurs que doit avoir la source pour appliquer l'action.
|
|
|
|
La [cible](../target/README.md) de la condition est ici "my_variable".
|
|
|
|
Donc ici la variable est caché à l'utilisateur si la variable "condition" est à True (le paramètre).
|
|
|
|
## Un condition avec plusieurs paramètres
|
|
|
|
Il est également possible de mettre plusieurs paramètre :
|
|
|
|
```
|
|
<variables>
|
|
<variable name="condition"/>
|
|
<variable name="my_variable"/>
|
|
</variables>
|
|
|
|
<constraints>
|
|
<condition name="hidden_if_in" source="condition">
|
|
<param>yes</param>
|
|
<param>maybe</param>
|
|
<target>my_variable</target>
|
|
</condition>
|
|
</constraints>
|
|
```
|
|
|
|
## Une condition optionnelle
|
|
|
|
Il est possible de définir une condition avec une variable source qui n'existe pas dans toutes les contextes.
|
|
|
|
Dans ce cas, on met la condition en "optionnelle".
|
|
|
|
Si la variable source existe, la condition s'applique.
|
|
|
|
Si la variable source n'existe pas :
|
|
|
|
- si le nom fini en _if_in (par exemple hidden_if_in), l'action est forcée sans condition (les cibles sont hidden)
|
|
- si le nom fini en _if_not_in (par exemple hidden_if_not_in), la condition est totalement ignorée
|
|
|
|
Ces deux comportements peuvent être changé à tout moment avec l'attribut "apply_on_fallback". Dans ce cas :
|
|
|
|
- si la valeur de "apply_on_fallback" est "True", l'action est forcée sans condition
|
|
- si la valeur de "apply_on_fallback" est "False", la condition est totalement ignorée
|
|
|
|
Exemple :
|
|
|
|
```
|
|
<condition name="hidden_if_in" source="condition" optional="True", apply_on_fallback="False">
|
|
<param>yes</param>
|
|
<param>maybe</param>
|
|
<target>my_variable</target>
|
|
</condition>
|
|
```
|