Populaire cette année

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

Blogger - Les balises conditionnelles <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 <b:if> et <b:elseif>.

La valeur attendue doit être boolean (true ou false).

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.



Spotlight

Populaires cette semaine