Alias de variable [b:with]

Modifier 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é dans la balise <b:skin>.
  • 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 Classification Préfixe "expr:" Signification -
value XML BLogger Expression autorisé La valeur attendue peut être :
  • une valeur explicite
  • une donnée
  • une expression Blogger
Obligatoire
var HTML classic autorisé Un quelconque nom de variable.
Ce nom sera utilisé pour employer la valeur de l'alias dans les nœuds enfants.
Obligatoire


Quelques exemples

Redimensionner une image
<b:with value='data:view.featuredImage ?: "https://lh5.googleusercontent.com/-usDU2zLhtDA/UjwV61KL07I/AAAAAAAAA-0/GT3UL09LA_c/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

Les autres balises

Posts les plus consultés de ce blog

Les types de données [introduction]

Facebook : Bouton partager [Share button]