Alias de variable / The variable alias : <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
<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 :
|
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
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[]]>