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.
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: » | Implantation |
---|---|---|---|---|
cond |
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. |
Classification : XML Blogger Expression | Préfixe « expr: » : Autorisé | Implantation : 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.
Les autres balises
<b:attr>
<b:class>
<b:comment>
<b:defaultmarkups>
<b:defaultmarkup><b:eval>
<b:if>
<b:elseif>
<b:else><b:includable>
<b:include><b:loop>
<b:message>
<b:param><b:section>
<b:skin>
<b:template-skin><b:switch>
<b:case>
<b:default><b:tag>
<b:template-script>
<b:widget>
<b:widget-settings>
<b:widget-setting><b:with>
<data:foo>
<![CDATA[]]>