Alias de variable / The variable alias : <b:with>

Blogger - Alias de variable <b:with>

L'alias de variable <b:with> est une balise d'instruction qui permet de créer une expression complexe pouvant être récupérée dans les nœuds enfants.



La syntaxe

XML
<b:with value='EXPRESSION' var='VARIABLE_NAME'>

  <data:VARIABLE_NAME/>

</b:with>
  • La balise <b:with> travaille dans l'ensemble du code XML, excepté à l'intérieur d'un balisage <![CDATA[.

  • Plusieurs balises <b:with> peuvent s'imbriquer.



Les attributs

L'alias de variable doit contenir plusieurs attributs obligatoires.

<b:with value='EXPRESSION'
        var='VARIABLE_NAME'>

</b:with>

Attributs Description Classification Préfixe « expr: » Implantation
value

Valeur de l'alias

La valeur attendue peut être :

  • une valeur explicite

  • une donnée

  • une expression Blogger

Classification : XML BLogger Expression Préfixe « expr: » : Autorisé Implantation : Obligatoire
var

Nom du récipient

Ce nom sera utilisé pour employer la valeur de l'alias dans les nœuds enfants.

Classification : HTML classic Préfixe « expr: » : Autorisé Implantation : Obligatoire


Quelques exemples

Redimensionner une image

<b:with value='data:view.featuredImage ?: "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgziAYuMlGzitTb2J1Njpq12HdfJ_gYmXarucsC9B-2WrJbjZbduCpMK-uWzPmY-fi2kBG5jUBLJFni5VwRsgKAzCh9ntvV2pZHeCSqIkM7F5oGVPvgDM7ON7LIUV7E32MjPM5zZ2GAaL9A/s1600/BCodeBanYT.jpg"' var='image'>
<b:with value'data:view.isHomepage ? [300,600,1200] : [100,200]' var='set'>
<b:with value'data:view.isHomepage ? 1200 : 200' var='size'>

  <img expr:src='resizeImage(data:image,data:size)'
       expr:srcset='sourceSet(data:image,data:set)' />

</b:with>
</b:with>
</b:with>

Le premier alias contient une expression qui choisi l'url de l'image.

Le second alias contient un choix de 2 tableaux de nombres qui serviront de sets dans l'attribut srcset.

Le troisième alias contient un choix de 2 tailles qui servira a redimensionner l'image dans l'attribut src.

Filtrer un tableau

<b:with value='data:posts where (p => p.date.dayOfWeek in [6,7])'
        var='postsList1'>
<b:with value='data:posts where (p => p.author == "Super Toto")'
        var='postsList2'>

  <b:loop values='data:view.isHomepage ? data:postsList1 : data:view.isSearch ? data:postsList2 : data:posts' var='post'>

    <h2><data:post.title/></h2>

  </b:loop>

</b:with>

Le premier alias filtre les posts publiés le samedi et le dimanche.

Le second alias filtre les posts publiés par Super Toto.

Dans la boucle, les 2 alias sont injectés dans un sélecteur ternaire. Le premier alias sera sélectionné si la page courante est la page d'accueil. Le second alias sera sélectionné si la page courante est une page de recherche. Et le tableau data:posts sera sélectionné si les 2 premières conditions ne sont pas respectées.

Remplacer une valeur d'une donnée

<b:with value='data:title ?: "Substitute title"' var='title'>

    <h2><data:title/></h2>

</b:with>

L'alias contient un sélecteur binaire dont le résultat sera reporté dans data:title.

Voir également l'attribut d'alias data



Spotlight

Populaires cette semaine