racine uZine

Dans la même rubrique
Mise en page : manuel de référence
26 mai 2003
16 août 2002
15 juin 2002
11 décembre 2001
7 décembre 2001
2 juin 2001
24 mai 2001
22 mai 2001
20 mai 2001
18 mai 2001
16 mai 2001
14 mai 2001
3 mai 2001
 
samedi 26 mai 2001

La syntaxe des balises SPIP

par l’équipe de SPIP

Chaque type de boucle permet de sélectionner des éléments de la base de données de SPIP : des articles, des rubriques, des brèves, etc. Chacun de ces éléments est lui-même constitué d’éléments précis : un titre, une date, un texte, etc. A l’intérieur d’une boucle, il faut donc pouvoir indiquer à quel endroit du code HTML on place tel ou tel de ces éléments précis.

Pour cela, on va utiliser des balises SPIP.

Fonctionnement simplifié

Une balise SPIP se place à l’intérieur d’une boucle (puisqu’il faut savoir si l’on veut récupérer un élément d’un article, d’une rubrique, etc.). Le nom de ces balises est généralement simple, et nous fournirons, pour chaque type de boucle, la liste complète des balises que l’on peut utiliser.

Une balise est toujours précédée du signe dièse (#).

Par exemple, affichons une liste de noms d’articles :

<BOUCLE_articles(ARTICLES){id_rubrique}>
<LI> #TITRE
</BOUCLE_articles>

Lorsque la boucle sera exécutée, la balise SPIP #TITRE sera à chaque fois remplacée par le titre de l’article en question :

<LI> Titre de l'article 1
<LI> Titre de l'article 2
...
<LI> Titre du dernier article

Rien de bien compliqué : on se contente d’indiquer à l’intérieur du code HTML le nom de l’élément désiré, et celui-ci est remplacé par le contenu tiré de la base de données.

Codes optionnels

Dans la pratique, un élément de contenu est souvent accompagné de code HTML qui ne doit s’afficher que si cet élément existe, faute de quoi la mise en page devient imprécise.

Par exemple : il existe une balise SPIP pour indiquer le surtitre d’un article. Or de nombreux articles n’ont pas de surtitre.

Complétons l’exemple précédent :

<BOUCLE_articles(ARTICLES){id_rubrique}>
<LI> #SURTITRE<BR>
#TITRE
</BOUCLE_articles>

qui, classiquement, nous donne une liste d’articles, avec désormais l’indication du titre et du surtitre de chaque article. Mais que se passe-t-il si l’article n’a pas de surtitre ? On obtient le code :
« <LI> <BR>  », c’est-à-dire une petite puce suivie d’une ligne blanche.

Ce que nous devons faire : n’afficher le code « <BR> » que si un surtitre existe pour l’article.

La syntaxe de la balise SPIP devient alors :

[ texte optionnel avant (#BALISE) texte optionnel après ]

La balise qui détermine l’option est placée entre parenthèses, et l’ensemble du texte conditionnel entre crochets. Le texte optionnel avant et le texte optionnel après ne s’affichent que s’il existe, dans la base de données, un élément correspondant à cette balise.

Notre exemple devient :

<BOUCLE_articles(ARTICLES){id_rubrique}>
<LI> [(#SURTITRE)<BR>]
#TITRE
</BOUCLE_articles>

On obtient alors le résultat recherché : s’il existe un surtitre pour cet article, il est affiché et suivi du <BR> ; s’il n’existe pas de surtitre, même le
<BR> est occulté.

Filtrer les résultats

Il est fréquent de vouloir modifier un élément tiré de la base de données, soit pour obtenir un affichage différent (par exemple, afficher le titre entièrement en majuscules), ou pour récupérer une valeur découlant de cet élément (par exemple, afficher le jour de la semaine correspondant à une date).

Dans SPIP, on peut directement appliquer des filtres aux éléments récupérés de la base de données, en les indiquant dans la syntaxe des balises SPIP, qui devient :

[ option avant (#BALISE|filtre1|filtre2|...|filtren) option après ]

La syntaxe est donc de faire suivre le nom de la balise, entre les parenthèses, par les filtres succesifs, séparés par une barre verticale (nommée habituellement pipe).

Remarque. En réalité, les filtres sont des fonctions PHP. Vous pouvez donc utiliser directement les fonctions de PHP (à condition que ces fonctions fonctionnent avec une seule variable), en plus des fonctions livrées avec SPIP.

Voici quelques filtres fournis par SPIP :

- majuscules, passe le texte en majuscules (plus puissant que la fonction de PHP correspondante, qui ne fonctionne pas correctement avec les caractères accentués) ; par exemple :

[(#TITRE|majuscules)]

- justifier, affiche le texte en justification totale (c’est-à-dire <P align=justify>) ; par exemple :

[(#TEXTE|justifier)]

La présente documentation consacre un article aux différents filtres livrés avec SPIP.

Court-circuiter le traitement par SPIP

SPIP applique un traitement typographique à tous les textes tirés de la base de données. En particulier, il place des espaces insécables avant certains symboles (point-virgule, point d’interrogation, etc.), et analyse des raccourcis de mise en page.

Dans certains cas, vous pouvez avoir besoin de court-circuiter ce traitement, afin de récupérer directement le texte brut tel qu’il est placé dans la base de données. Pour cela, il suffit d’ajouter une astérisque (*) à la suite de la balise SPIP. Ce qui donne :

[ option avant (#BALISE*|filtre1|filtre2|...|filtren) option après ]

Filtres à plusieurs variables

Attention, ce passage s’adresse aux utilisateurs avertis. [SPIP 1.5] autorise le passage de paramètres dans les filtres. La syntaxe est

La fonction filtre doit être définie de la manière suivante dans mes_fonctions.php3 :

Une telle fonction a donc forcément pour première variable le texte à traiter (ici, le texte de #BALISE).

 
 
l’équipe de SPIP
Imprimer
format impression
l’équipe de SPIP
2 septembre 2002
1er juin 2001
24 mai 2001
 
SPIP
Web indépendant