Introduction : Les opérateurs Blogger / Blogger operators

Avis aux gratteurs

Suite aux violations répétées de la part de certains utilisateurs, nous avons pris la décision de ne pas couvrir les futures générations de thèmes Blogger tant que des copies illégales du contenu de ce blog existeront.

Les opérateurs Blogger / Blogger Operators [introduction]

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 ».

Syntaxe correcte
<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:.

Syntaxe correcte
<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é.

Syntaxe incorrecte
<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...

En savoir plus

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.

En savoir plus

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.

En savoir plus

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.

En savoir plus

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.

En savoir plus

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.

En savoir plus

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.

En savoir plus

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.

En savoir plus

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.

En savoir plus

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.

En savoir plus

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.

En savoir plus

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.

En savoir plus

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.

En savoir plus

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.


Les autres références XML

Spotlight

Populaires cette semaine

Le fichier XML du gadget FeaturedPost