Introduction : Les opérateurs Blogger / Blogger operators
Les opérateurs Blogger sont utilisés dans les expressions pour effectuer des opérations arithmétiques, comparer des valeurs, traiter des tableaux, etc...
Avantages des opérateurs Blogger
Les opérateurs Blogger sont très similaires à d'autres opérateurs utilisés dans des langages de programmation comme Javascript.
Les habitués de ces langages s'y retrouveront aisément et les débutants ou amateurs prendront un immense plaisir à évoluer dans ce monde.
Le catalogue Blogger n'est pas aussi étoffé que les autres langages, mais en tant que petit poucet, on peut lui attribuer plusieurs avantages :
Traitement de l'api XML (les données).
Temps d’exécution imperceptible aux yeux des visiteurs.
Ne laisse aucune trace sur le web. Seule la valeur du résultat de l'opération s'affiche dans le rendu HTML.
...
Le langage a aussi évolué. Souvenez-vous, en 2006 (à l'époque de Blogger-Beta), le catalogue proposait le minimum syndical avec les opérateurs de comparaison, arithmétiques et de concaténation. Et c'est tout !
Depuis, sont apparus en 2015 une multitude de packs pour les webmasters de blogs : Les packs 1 & 2 qui contenaient de nouvelles balises, de nouveaux réglages et une classification des données par type, suivi en 2016 des packs 3 & 4 avec une série de nouveaux opérateurs. Là encore, en comparaison avec le pack originel, il n'y a pas photo :
Nombre de combinaisons très élevé - Au moins quelques milliards... (certaines personnes ont encore l'audace de dire que c'est très limité 😂).
Imbrication des expressions.
Réglages additionnels des données.
Traitement ou/et création de tableaux.
Données triées par type - A chaque type son opérateur et à chaque opérateur son type.
Apparition de la syntaxe fonctionnelle.
etc, etc, etc,...
En résumé, ce qu'on écrivait en 20 lignes avant 2015, on peut aisément l'écrire aujourd'hui en une seule petite ligne.
Implantation des opérations
Les opérations doivent s'intégrer comme valeur dans un attribut classifié « Attribut d'expression Blogger ».
<b:if cond='BLOGGER-OPERATION'> </b:if>
cond
est un attribut d'expression Blogger dont la valeur peut être une opération.
Lorsque l'attribut est classifié comme étant un « Attribut HTML Classic », celui-ci doit être doté du préfixe expr:
.
<div expr:class='BLOGGER-OPERATION'> </div>
class
est un attribut HTML classique. Pour qu'il devienne un Attribut d'expression Blogger, le préfixe expr:
a été ajouté.
<div class='BLOGGER-OPERATION'> </div>
class
est un attribut HTML classique. Le préfixe expr:
n'a pas été ajouté. Le thème affichera une erreur.
Pour connaître la classification des attributs, réfèrez-vous à nos tableaux :
Introduction aux attributs Blogger
L'opérateur de concaténation
L'opérateur de concaténation a la particularité de relier une chaîne de caractères à une valeur du même type ou d'un type différent...
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Concaténation |
+ |
Syntaxes par défaut string + allType allType + string Syntaxes Fonctionnelles +(string,allType) +(allType,string) |
Nombre d'opérandes : 2+ | Résultat : string |
Les opérateurs de comparaison
Les opérateurs de comparaison ont la particularité de vérifier l'équivalence de deux valeurs. Le résultat est une valeur booléenne.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Égalité |
== ou eq |
Syntaxes par défaut allType == allType allType eq allType Syntaxes Fonctionnelles ==(allType,allType) eq(allType,allType) |
Nombre d'opérandes : 2 | Résultat : boolean |
Inégalité |
!= ou neq |
Syntaxes par défaut allType != allType allType neq allType Syntaxes Fonctionnelles !=(allType,allType) neq(allType,allType) |
Nombre d'opérandes : 2 | Résultat : boolean |
Inférieur |
< ou lt |
Syntaxes par défaut number < number number lt number Syntaxes Fonctionnelles <(number,number) lt(number,number) |
Nombre d'opérandes : 2 | Résultat : boolean |
Inférieur ou égal |
<= ou lte |
Syntaxes par défaut number <= number number lte number Syntaxes Fonctionnelles <=(number,number) lte(number,number) |
Nombre d'opérandes : 2 | Résultat : boolean |
Supérieur ou égal |
>= ou gte |
Syntaxes par défaut number >= number number gte number Syntaxes Fonctionnelles >=(number,number) gte(number,number) |
Nombre d'opérandes : 2 | Résultat : boolean |
Supérieur |
> ou gt |
Syntaxes par défaut number > number number gt number Syntaxes Fonctionnelles >(number,number) gt(number,number) |
Nombre d'opérandes : 2 | Résultat : boolean |
Les opérateurs arithmétiques
Les opérateurs arithmétiques permettent de créer des opérations mathématiques avec des nombres. Le résultat est une valeur numérique.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Addition |
+ |
Syntaxe par défaut number + number Syntaxe Fonctionnelle +(number,number) |
Nombre d'opérandes : 2+ | Résultat : number |
Soustraction |
- |
Syntaxe par défaut number - number Syntaxe Fonctionnelle -(number,number) |
Nombre d'opérandes : 2+ | Résultat : number |
Multiplication |
* |
Syntaxe par défaut number * number Syntaxe Fonctionnelle *(number,number) |
Nombre d'opérandes : 2+ | Résultat : number |
Division |
/ |
Syntaxe par défaut number / number Syntaxe Fonctionnelle /(number,number) |
Nombre d'opérandes : 2+ | Résultat : number |
Modulo |
% |
Syntaxe par défaut number % number Syntaxe Fonctionnelle %(number,number) |
Nombre d'opérandes : 2+ | Résultat : number |
L'opérateur de contenu
L'opérateur de contenu a la particularité de comparer une section d'une chaîne de caractères à une chaîne de caractères. Le résultat est une valeur booléenne.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Contient |
contains |
Syntaxe par défaut string contains string Syntaxe Fonctionnelle contains(string,string) |
Nombre d'opérandes : 2 | Résultat : boolean |
Les opérateurs logiques
Les opérateurs de logiques comparent des valeurs booléennes dont le résultat est une valeur booléenne.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
ET |
&& ou and |
Syntaxes par défaut boolean && boolean boolean and boolean Syntaxes Fonctionnelles &&(boolean,boolean) and(boolean,boolean) |
Nombre d'opérandes : 2+ | Résultat : boolean |
OU |
|| ou or |
Syntaxes par défaut boolean || boolean boolean or boolean Syntaxes Fonctionnelles ||(boolean,boolean) or(boolean,boolean) |
Nombre d'opérandes : 2+ | Résultat : boolean |
Inverse |
! ou not |
Syntaxes par défaut !boolean not boolean |
Nombre d'opérandes : 1 | Résultat : boolean |
Les opérateurs membres
Les opérateurs membres ont la particularité de vérifier l'équivalence d'une valeur à une valeur contenue dans un tableau. Le résultat est une valeur booléenne.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Dans |
in |
Syntaxes par défaut string in array[string] boolean in array[boolean] number in array[number] Syntaxes Fonctionnelles in (string, array[string]) in (boolean, array[boolean]) in (number, array[number]) |
Nombre d'opérandes : 2 | Résultat : boolean |
Contient |
contains |
Syntaxes par défaut array[string] contains string array[boolean] contains boolean array[number] contains number Syntaxes Fonctionnelles contains (array[string], string) contains (array[boolean], boolean) contains (array[number], number) |
Nombre d'opérandes : 2 | Résultat : boolean |
Les sélecteurs
Les sélecteurs ternaires et binaires sont des opérateurs utilisant respectivement trois et deux opérandes. Le résultat est un choix parmi 2 valeurs.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Sélecteur Ternaire |
? : |
Syntaxe par défaut boolean ? value1 : value2 |
Nombre d'opérandes : 3 | Résultat : value1 ou value2 |
Sélecteur Binaire |
?: |
Syntaxe par défaut value1 ?: value2 |
Nombre d'opérandes : 2 | Résultat : value1 ou value2 |
Les opérateurs de tableaux
Les opérateurs de tableaux permettent de contrôler le résultat de sortie d'un tableau.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Jusqu'à |
take ou limit |
Syntaxes par défaut array take number array limit number Syntaxes Fonctionnelles take (array, number) limit (array, number) |
Nombre d'opérandes : 2 | Résultat : array |
À partir de |
Skip ou offset |
Syntaxes par défaut array skip number array offset number Syntaxes Fonctionnelles skip (array, number) offset (array, number) |
Nombre d'opérandes : 2 | Résultat : array |
Plage de nombres |
to |
Syntaxe par défaut number to number |
Nombre d'opérandes : 2 | Résultat : array[number] |
Les opérateurs lambdas
Les opérateurs Lambdas traitent des tableaux en fonction de critères disponibles dans ces tableaux.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Au moins 1 |
any |
Syntaxe par défaut array any var => boolean |
Nombre d'opérandes : 2 | Résultat : boolean |
Tout |
all |
Syntaxe par défaut array all var => boolean |
Nombre d'opérandes : 2 | Résultat : boolean |
Aucun |
none |
Syntaxe par défaut array none var => boolean |
Nombre d'opérandes : 2 | Résultat : boolean |
Compteur |
count |
Syntaxe par défaut array count var => boolean |
Nombre d'opérandes : 2 | Résultat : number |
Mappage |
map ou select |
Syntaxes par défaut array map var => criterion array select var => criterion |
Nombre d'opérandes : 2 | Résultat : array[criterion] |
Filtre |
filter ou where |
Syntaxes par défaut array filter var => boolean array where var => boolean |
Nombre d'opérandes : 2 | Résultat : array |
Premier |
first |
Syntaxe par défaut array first var => boolean |
Nombre d'opérandes : 2 | Résultat : Type enfant du tableau |
Les opérateurs d'images
Les opérateurs d'images appliquent des caractéristiques aux URLs des images.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Redimensionner |
resizeImage |
Syntaxe par défaut image resizeImage number resizeImage string Syntaxe Fonctionnelle resizeImage(image,number,string) |
Nombre d'opérandes : 2 ou 3 | Résultat : image |
Tableau d'images redimensionnées |
resizeImage |
Syntaxe par défaut image resizeImage array[number] resizeImage string Syntaxe Fonctionnelle resizeImage(image,array[number],string) |
Nombre d'opérandes : 2 ou 3 | Résultat : array[object] |
Images réactives |
sourceSet |
Syntaxe par défaut image sourceSet array[number] sourceSet string Syntaxe Fonctionnelle sourceSet(image,array[number],string) |
Nombre d'opérandes : 2 ou 3 | Résultat : string |
Les opérateurs d'URLs
Les opérateurs d'URLs ont la particularité de traiter une URL en y ajoutant ou en y remplaçant des caractéristiques.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Nouveau chemin |
path |
Syntaxe par défaut URL path string Syntaxe Fonctionnelle path(URL,string) |
Nombre d'opérandes : 2 | Résultat : string |
Remplacer les paramètres |
params |
Syntaxe par défaut URL params object Syntaxe Fonctionnelle params(URL,object) |
Nombre d'opérandes : 2 | Résultat : string |
Ajouter des paramètres |
appendParams |
Syntaxe par défaut URL appendParams object Syntaxe Fonctionnelle appendParams(URL,object) |
Nombre d'opérandes : 2 | Résultat : string |
Ajouter/Remplacer un fragment |
Résultat : fragment |
Syntaxe par défaut URL fragment string Syntaxe Fonctionnelle fragment(URL,string) |
Nombre d'opérandes : 2 | Résultat : string |
L'opérateur de dates
L'opérateur de dates à la particularité de personnaliser le format d'une date à l'aide du formatage ICU.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Format |
format |
Syntaxe par défaut date format string Syntaxe Fonctionnelle format(date,string) |
Nombre d'opérandes : 2 | Résultat : date |
L'opérateur d'extraits
L'opérateur d'extraits a la particularité d'appliquer des caractéristiques à une chaîne de caractères.
Noms | Opérateurs | Syntaxes | Opérandes | Résultat |
---|---|---|---|---|
Créer un extrait |
snippet |
Syntaxe par défaut string snippet object Syntaxe Fonctionnelle snippet(string,object) |
Nombre d'opérandes : 2 | Résultat : string |
La syntaxe fonctionnelle
Une syntaxe fonctionnelle est une alternative que l'on peut utiliser lorsque la syntaxe par défaut contient plusieurs fois le même opérateur.
La syntaxe fonctionnelle travaille avec la plupart des opérateurs.
Syntaxe par défaut
operand operator operand
Syntaxe fonctionnelle
operator(operand,operand,operand)
Tous les types de valeurs sont autorisés.
Les opérandes peuvent être :
Une valeur explicite.
Une donnée.
Le résultat d'une opération qui a été reportée dans une variable.
Les opérandes peuvent contenir des opérations imbriquées. Celles-ci doivent être intégrées dans des parenthèses.
Exemple avec 2 opérandes
and(data:view.isPost, data:blog.isPrivate)
Le résultat sera vrai, si la page courante est une page d'article et si le blog est privé.
Exemple avec plusieurs opérandes
+(3,5,9,100)
Le résultat sera 117.
Exemple avec une opération imbriquée
+(3,5,9,(100*5))
Le résultat sera 517.
Limitation
40 jetons maximum sont attribués à la valeur contenue dans un attribut d'expression.
Lorsque ce quota est épuisé, l'expression ne travaillera plus. Selon les cas, un commentaire peut s'afficher dans le code source du blog à l'emplacement où aurait dû s'afficher le contenu.
- Consommation des jetons :
- 1 jeton par opérande.
- 1 jeton par opérateur.
- 1 jeton par tableau.
- 1 jeton par objet.
- 1 jeton par item contenu dans un tableau.
- 1 jeton par item contenu dans un objet.