Les balises conditionnelles / Conditional tags : <b:if>
, <b:elseif>
, <b:else>

Les balises conditionnelles <b:if>
, <b:elseif>
et <b:else>
sont des instructions qui permettent d’exécuter ou non un bloc de codes dans l'éditeur XML de Blogger.
Table des matières
Les syntaxes
<b:if>
<b:if cond='CONDITION'>
<!-- Le bloc de codes est éxecuté si la condition est vraie -->
</b:if>
<b:if> + <b:else>
<b:if cond='CONDITION'>
<!-- Le bloc de codes est exécuté si la condition est vraie -->
<b:else/>
<!-- Le bloc de codes est exécuté si la condition est fausse -->
</b:if>
<b:if> + <b:elseif>
<b:if cond='CONDITION1'>
<!-- Le bloc de codes est exécuté si la condition 1 est vraie -->
<b:elseif cond='CONDITION2'/>
<!-- Le bloc de codes est exécuté si la condition 1 est fausse et si la condition 2 est vraie -->
</b:if>
<b:if> + <b:elseif> + <b:else>
<b:if cond='CONDITION1'>
<!-- Le bloc de codes est exécuté si la condition 1 est vraie -->
<b:elseif cond='CONDITION2'/>
<!-- Le bloc de codes est exécuté si la condition 1 est fausse et si la condition 2 est vraie -->
<b:else/>
<!-- Le bloc de codes est exécuté si la condition 1 est fausse et si la condition 2 est fausse -->
</b:if>
Les balises
<b:if>
,<b:elseif>
et<b:else>
travaillent dans l'ensemble du code XML, excepté à l'intérieur d'un balisage<![CDATA[
.Plusieurs balises
<b:if>
peuvent s'imbriquer.Les balises
<b:elseif>
et<b:else>
doivent être imbriquées dans une balise<b:if>
.L'usage des balises
<b:elseif>
et<b:else>
est facultative.La balise
<b:elseif>
peut être utilisée plusieurs fois dans une balise<b:if>
.La balise
<b:else>
ne peut être utilisée qu'une seule fois dans une balise<b:if>
. Si<b:if>
contient une ou plusieurs balises<b:elseif>
, la balise<b:else>
devra être la dernière balise conditionnelle à être mentionnée.
Les attributs
A l'exception de la balise <b:else>
, les balises conditionnelles doivent être dotées de l'attribut cond
.
<b:if cond='CONDITION1'>
<b:elseif cond='CONDITION2'/>
<b:else/>
</b:if>
Attributs | Description | Classification | Préfixe expr: |
Implémentation |
---|---|---|---|---|
Condition d'exécution du noeud enfant. Cet attribut s'intègre dans les balises La valeur attendue doit être boolean ( Elle peut être une valeur explicite, une donnée ou une expression Blogger. |
XHTML Blogger | Autorisé | Obligatoire |
Quelques exemples
Avec des valeurs explicites
<b:if cond='true'>
</b:if>
Les valeurs true
et false
étant des booléens, une valeur explicite est autorisée.
Avec une donnée booléenne
<b:if cond='data:view.isPost'>
</b:if>
La donnée data:view.isPost
est de type boolean (booléen).
La valeur renvoie toujours true
(vraie) ou false
(fausse).
Avec une donnée string
<b:if cond='data:view.title'>
</b:if>
La donnée data:view.title
est de type string (Chaîne de caractères).
La valeur est vraie uniquement si la donnée renferme une valeur.
Avec une opération de comparaison
<b:if cond='data:view.type == "item"'>
</b:if>
La donnée data:view.type
est intégrée dans une expression Blogger contenant l'opérateur de comparaison ==
.
Le résultat de l'expression est vraie uniquement si la valeur de la donnée est égale à item
.
Avec une opération logique
<b:if cond='data:view.search.label and data:view.isMobile'>
</b:if>
Les données data:view.search.label
string et data:view.isMultipleItems
boolean sont intégrées dans une expression Blogger contenant l'opérateur logique and
.
Le résultat de l'expression est vraie uniquement :
si la donnée
data:view.search.label
renferme une valeur.et si la donnée
data:view.isMultipleItems
renvoie une valeur vraie.
Avec un opérateur membre
<b:if cond='data:view.search.label in ["Mes photos", "Mes vidéos"]'>
<b:elseif cond='data:view.search.label in ["Mes recettes", "Ma collection de chocolats"]'/>
<b:else/>
</b:if>
Dans la première condition, le résultat sera vrai, si data:view.search.label
contient le terme Mes photos
ou Mes vidéos
.
Si la première condition est fausse, la seconde condition sera exécutée si data:view.search.label
contient le terme Mes recettes
ou Ma collection de chocolats
.
Avec une opération lambda
<b:if cond='data:posts any (p => p.date.year == 2018)'>
<b:else/>
</b:if>
Le résultat sera vrai, si l'un des posts a été publié en 2018.