expr:
: Le préfixe d'attribut d'expression Blogger
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 valeurs explicites (avec des quotes pour les chaînes de caractères et sans quote pour les booléens et les nombres).
En résumé, le résultat de l'expression doit être d'un type reconnu par Blogger.
En savoir plus sur les types de données Blogger
La syntaxe
<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 classique, 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.
<div expr:class='data:view.type' expr:id='"b-" + data:blog.blogId"' expr:style='"font-size: " + data:view.isMobile ? 20 : 14 + "px;"'> </div>
<div class='item' id='b-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
: ID du blog.data:view.postId
: ID de l'article.data:view.pageId
: ID de la page autonome.
<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.
Les autres attributs d'expression
<html> (attributes)
expr: (prefix)
class
cond
data
expr
id
index
locked
maxwidgets