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" |
|
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éfixeexpr:
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>
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
- Attributs de la balise
<html>
expr:
class
cond
data
expr
id
index
locked
maxwidgets
mobile
name
preferred
render
reverse
showaddelement
title
type
value
values
var
version
visible