Le préfixe d'attribut d'expression [expr:]

Le préfixe d'attribut d'expression [expr:]
Le terme expr: est un préfixe d'attribut, qui indique que le contenu de la valeur de l'attribut contient une expression Blogger.

Introduction - Qu'est-ce qu'une expression Blogger ?

Une expression Blogger est un code spécifique Blogger qui doit être injecté dans la valeur d'un attribut d'une balise HTML.

<BALISE ATTRIBUT='EXPRESSION'>

</BALISE>

Une expression peut être composée :
  • d'opérateurs
  • de données Blogger
  • de chaines de caractères (encadrés de quotes)

Le résultat de l'expression peut être de type :

Types Signification Valeur
string Une chaîne de caractères. "string"
boolean Une valeur booléenne. true|false|yes|no
number Une valeur numérique. 17
URL Une url du blog. "https://.html"
image Une url d'une image. "https://.jpeg"
date Une url d'une image. "25 janvier 2125"
locale Paramètres locaux. "fr"
message Un message permanent. "Accueil"
skin La valeur d'une variable d'habillage. "#ffffff"
object Un objet. {"item1":"value","item2":"value","item3":"value"}
array array[string] Un tableau de chaînes de caractères. ["string1","string2","string3"]
array[boolean] Un tableau de valeurs booléennes. [true,false,true]
array[number] Un tableau de nombres. [1,2,3,4]
array[URL] Un tableau d'urls du blog. ["https://.html","https://.html","https://.html"]
array[image] Un tableau d'urls d'images. ["https://.jpeg","https://.jpeg","https://.jpeg"]
array[date] Un tableau de dates. ["25 janvier","2 avril","29 octobre"]
array[object] Un tableau d'objet. [{object}]


La syntaxe

XML
<div expr:class='EXPRESSION' expr:id='EXPRESSION' expr:style='EXPRESSION'>

</div>

  • Tous les attributs d'une balise HTML classique peuvent être doté du préfixe expr:.
  • Sous certaines conditions, le préfixe expr: peut être également mentionné dans dans les attributs d'expression spécifiques aux balises Blogger. Toutefois, l'usage est légèrement différent.


Dans une balise HTML classique

Dans une balise HTML standard, le préfixe permet d'intégrer une expression Blogger dans la valeur de l'attribut.
Dans le rendu HTML, le préfixe ne sera pas imprimé et l'expression Blogger sera remplacée par le résultat.

XML
<div expr:class='data:view.type'
     expr:id='"p-" + data:blog.blogId"'
     expr:style='"font-size: " + data:view.isMobile ? 20 : 14 + "px;"'>

</div>
Rendu HTML
<div class='item'
     id='p-1234567890'
     style='font-size: 14px;'>

</div>


Dans une balise XML Blogger

L'usage du préfixe expr: dans une balise Blogger (celles avec le préfixe b:) prend un tout autre sens, puisque la majorité de ces balises ont été conçues pour y ajouter que des expressions Blogger sans avoir a ajouter ce préfixe. Un mauvais usage ou une mauvaise compréhension peut faire planter le modèle ou le widget. Donc, prudence...

Le cas le plus intéressant lorsque le préfixe expr: est mentionné, est d'avoir la possibilité de reconstruire une données à partir de petits bouts de chaînes de caractères.
Par exemple, vous avez entre les mains plusieurs données similaires avec des noms différents et vous ne souhaitez écrire qu'une seule fois le code.
Pour cela, il suffit de considérer les données comme une simple chaine de caractères et de reconstruire le nom à l'aide d'une expression dont l'attribut n'est pas doté du préfixe expr:.
Pour que la donnée devienne active (c-à-d, analysée et considérée comme une donnée), il faut intégrer le résultat de l'expression, dans une nouvelle balise Blogger (par exemple b:with) dont l'attribut qui contiendra la valeur doit être doté du préfixe expr:.
Vous n'avez pas compris ? Ce n'est pas grave.
Voici une démo qui reconstruit les données :
  • data:blog.blogId
  • data:view.postId
  • data:view.pageId

DEMO
<b:with value='data:view.isPost ? "view.post" : (data:view.isPage ? "view.page" : "blog.blog")' var='dataName'>
<b:with expr:value='"data:" + data:dataName + "Id"' var='newData'>

 La valeur de data:<data:dataName/>Id est : <data:newData/>

</b:with>
</b:with>
La première expression n'est pas doté du préfixe expr:, puisque le résultat qu'on recherche à obtenir n'est qu'une simple chaîne de caractères : blog.blog ou view.post ou view.page.
Le préfixe expr: est requis dans la seconde expression, puisque l'objectif est de reconstruire la donnée et qu'elle doit être considérée comme une donnée et non pas comme une simple chaîne de caractères.

L'exemple peut paraître anodin et inutile, tant qu'on peut obtenir un résultat avec la méthode habituelle. Mais cette méthode peut s'avérer indispensable lorsque l'on traite des tableaux et qu'on n'a pas d'autre solution que de dupliquer à de multiple reprises une section de codes juste parce que les noms des jeux de données sont différents.

Posts les plus consultés de ce blog

Facebook : Bouton J'aime [Like button]