Les balises commutateurs / Switch tags : <b:switch>
, <b:case>
, <b:default>
Les balises commutateurs <b:switch>
, <b:case>
et <b:default>
sont des instructions qui permettent d’exécuter ou non un bloc de codes.
Les balises commutateurs se comportent comme les balises conditionnelles <b:if>
, <b:elseif>
et <b:else>
.
Les syntaxes
<b:switch> + <b:case>
<b:switch var='EXPRESSION'> <b:case value='VALUE1'/> <!-- Vrai si la valeur1 est égale au résultat de l'expression --> <b:case value='VALUE2'/> <!-- Vrai si tous les cas précédents ne remplissent pas les conditions requises --> <!-- Et vrai si la valeur2 est égale au résultat de l'expression --> </b:switch>
<b:switch> + <b:case> + <b:default>
<b:switch var='EXPRESSION'> <b:case value='VALUE1'/> <!-- Vrai si la valeur1 est égale au résultat de l'expression --> <b:case value='VALUE2'/> <!-- Vrai si tous les cas précédents ne remplissent pas les conditions requises --> <!-- Et vrai si la valeur2 est égale au résultat de l'expression --> <b:default/> <!-- Vrai si tous les cas précédents ne remplissent pas les conditions requises --> </b:switch>
Les balises
<b:switch>
,<b:case>
et<b:default>
travaillent dans l'ensemble du code XML, excepté à l'intérieur d'un balisage<![CDATA[
.Plusieurs balises
<b:switch>
peuvent s'imbriquer.Les balises
<b:case>
et<b:default>
doivent être imbriquées dans une balise<b:switch>
.L'usage de la balise
<b:case>
est requise et la balise<b:default>
n'est pas obligatoire.La balise
<b:case>
peut être utilisée plusieurs fois dans une balise<b:switch>
.La balise
<b:default>
ne peut être utilisée qu'une seule fois dans une balise<b:switch>
. Si<b:switch>
contient une ou plusieurs balises<b:case>
, la balise<b:default>
devra être la dernière balise à être mentionnée dans le commutateur.
Les attributs des balises
Les balises <b:switch>
et <b:case>
doivent être dotées d'un attribut.
La balise <b:default>
ne requiert aucun attribut. Elle n'est exécutée que lorsque tous les commutateurs précédents ne remplissent pas les conditions requises.
<b:switch var='EXPRESSION'> <b:case value='VALUE'/> <b:default/> </b:switch>
Attributs | Description | Classification | Préfixe « expr: » | Implantation |
---|---|---|---|---|
var |
La valeur du commutateur Cet attribut s'intègre dans la balise La valeur attendue peut être une donnée ou une expression Blogger. Les types de valeurs autorisés sont string (+héritiers), number et boolean. |
Classification : XHTML Blogger | Préfixe « expr: » : Autorisé | Implantation : Obligatoire |
value |
La valeur du cas Cet attribut s'intègre dans les balises La valeur du cas est comparée à la valeur du commutateur. Les types de valeurs autorisés sont string (+héritiers), number et boolean. La valeur peut être également une expression Blogger si l'attribut est précédé du préfixe |
Classification : HTML classic | Préfixe « expr: » : Autorisé | Implantation : Obligatoire |
Quelques exemples
Avec une donnée booléenne
<b:switch var='data:view.isPost'> <b:case value='true'/> <!-- Vrai si la valeur de data:view.isPost est true --> <b:default/> <!-- Vrai si le cas précédent ne rempli pas la condition requise --> </b:switch>
Avec une donnée string
<b:switch var='data:view.type'> <b:case value='item'/> <!-- Vrai si la valeur de data:view.type est "item" --> <b:case value='feed'/> <!-- Vrai si le cas précédent ne rempli pas la condition requise et vrai si la valeur de data:view.type est "feed" --> <b:default/> <!-- Vrai si les cas précédents ne remplissent pas les conditions requises --> </b:switch>
Avec une donnée numérique et une expression Blogger
<b:switch var='data:posts.length + 10'> <b:case value='0'/> <!-- Vrai si la valeur de l'expression est égale à 0 --> <b:case expr:value='10 - 1'/> <!-- Vrai si le cas précédent ne rempli pas la condition requise et vrai si l'expression est égale à l'opération 10 - 1 --> <b:default/> <!-- Vrai si les cas précédents ne remplissent pas les conditions requises --> </b:switch>
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[]]>