Populaire cette année

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

Avis aux gratteurs

Suite aux violations répétées de la part de certains utilisateurs, nous avons pris la décision de ne pas couvrir les futures générations de thèmes Blogger tant que des copies illégales du contenu de ce blog existeront.

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.



Les autres balises

Spotlight

Populaires cette semaine

Le fichier XML du gadget FeaturedPost