Les balises commutateurs [b:switch / b:case / b:default]
![Blogger - Les balises commutateurs [b:switch / b:case / b:default]](https://3.bp.blogspot.com/-XxhoqtUaaFI/XP8EgQ2pU5I/AAAAAAAAz5w/d5XNwmUpD9QJQ0Su6Rfdul9mNTyVwVsdQCLcBGAs/s600/b-switch.jpg)
Les balises commutateurs
Les balises commutateurs se comportent comme les balises conditionnelles
<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>
.La syntaxe
XML
<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
A l'exception de la balise<b:default>
, 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>
Balise | Attributs | Classification | Préfixe « expr: » | Signification | - |
---|---|---|---|---|---|
<b:switch> |
var |
XML Blogger Expression | autorisé | La valeur du commutateur. 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. |
Obligatoire |
<b:case> |
value |
HTML classic | autorisé | La valeur du cas. Cette valeur 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 expr: . La valeur du résultat de l'expression devra être l'un des 3 types mentionnés ci-dessus. |
Obligatoire |
<b:default> |
- | - | - | Aucun attribut | - |
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:case>
<b:class>
<b:comment>
<b:default>
<b:defaultmarkup>
<b:defaultmarkups>
<b:else>
<b:elseif>
<b:eval>
<b:if>
<b:includable>
<b:include>
<b:loop>
<b:message>
<b:param>
<b:section>
<b:skin>
<b:switch>
<b:tag>
<b:template-script>
<b:template-skin>
<b:widget>
<b:widget-setting>
<b:widget-settings>
<b:with>
<data:foo>
<![CDATA[]]>