Dans la boucle ci-dessus le parametre id_article provient de l'URL
spip.php?page=article&id_article=8
Fabrication d'une page par SPIP
Identification de la « vue » demandée : http://monspip/spip.php?page=article&id_article=1
Chargement du squelette associé : article.html
Passage de la valeur du paramètre id_article au squelette
Declenchement par le squelette des accès en base de données : ARTICLE=1
Remplacement des fragments dynamiques du squelette par les valeurs lues en base de données : #TITRE,
#INTRODUCTION, #TEXTE
Enregistrement de la page générée dans le cache SPIP : /tmp/cache/A/dfksdf.html
Envoi de la page au navigateur web.
La notion de boucle de SPIP
La notion de base du langage de SPIP est donc la boucle.
SPIP doit extraire des listes d'éléments (Articles, Rubriques) pour les afficher sur le site.
C'est ici qu'intervient la boucle qui permet de :
extraire un seul élément d’une liste
extraire plusieurs éléments d’une liste
gérer l’éventualité de l’absence de ces éléments
Structure d'une boucle
BOUCLE : OBJET « liste des articles » + CRITERE « de cette rubrique »
BALISE : afficher ici le titre de l'article
BALISE : afficher la date + FILTRE « uniquement le mois et l'année »
BALISE : afficher le sous-titre
BALISE : afficher le texte de l'article
Fin de la BOUCLE
Sélectionner ou trier les données : criteres
Certains critères s'appliquent à toutes les boucles. Ils permettent :
Classer les résultats
Afficher les données en fonction de la date
Affichage d’une partie des résultats (pagination par exemple)
Affichage d’une partie des résultats
{doublons} : permet d’interdire l’affichage des résultats déjà affichés dans d’autres boucles
utilisant ce critère
{exclus} : permet d’exclure du résultat l’élément (article, brève, rubrique, etc.) dans lequel on se
trouve déjà
{a,b} : où a et b sont des chiffres. Ce critère permet de limiter le nombre de résultats. a indique
le résultat à partir duquel on commence l’affichage (attention, le premier résultat est numéroté 0 - zéro) ;
b indique le nombre de résultats affichés.
Afficher les données par rapport à une date
Exemples :
{age<30} : éléments publiés depuis moins d'un mois
{annee<=2006} : permet d'afficher uniquement les données de l'année 2006
{age_relatif} :
Articles de la même rubrique publiés à la même date que l'article principal :
{par date} : classe les élements par ordre chronologique
{par date}{inverse} : on commence la liste avec les articles les plus récents
{par hasard} : permet de classer les éléments de façon aléatoire
Afficher les données sélectionnées : les balises
Avec les boucles on récupère un ou plusieurs éléments (article, rubrique, brève...)
Avec les balises on affiche les données contenues dans ces éléments (titre de l'article, texte de
l'article...). Une balise SPIP se place donc à l’intérieur d’une boucle
Utilisation des balises
Insérer une valeur (et ce qui l'entoure) uniquement si cette valeur n'est pas vide :
[texte optionnel avant (#BALISE) texte optionnel après]
Distinguer le même type de données (titre d'une rubrique et titre d'un article) dans des boucles imbriquées
:
#_boucle:BALISE
Balises génériques
Certaines balises sont utilisables dans l'ensemble du site, et ne sont pas liées à un contexte particulier.
#URL_SITE_SPIP
#LOGO_SITE_SPIP
#DOSSIER_SQUELETTE (notamment pour les chemins vers les images)
src="#DOSSIER_SQUELETTE/image1.png"
interne au site
#FORMULAIRE_RECHERCHE Affichage du formulaire de rechercher
#LOGIN_PUBLIC Affichage du formulaire de connexion qui redirige vers le site public (utile notamment
pour le plugin Acces Restreint)
affdate_mois_annee affiche le mois et l'année : « Avril 2006 »...
affdate_jourcourt affiche le format de date court : « 19 Mars » dans l'année courante ou « 1 Décembre
2006 » dans les années précédentes
nom_jour affiche le jour courant : « lundi », « mardi »
saison affiche la saison : « été », « hiver »
Filtres sur les images
image_reduire permet de réduire la taille des images (calcul effectué sur le serveur et mis en cache)
[(#TEXTE|image_reduire{600,0})]
reduit toutes les images contenues dans le corps de l'article à une largeur maximale de 600 pixels (et de
conserver ainsi une mise en page propre)
image_recadre{largeur,hauteur,position} permet de recadrer une image
[(#FICHIER|image_recadre{90,90,center})]
recadre l’image originale en un carré de 90 px de largeur et hauteur ne gardant en se basant sur le centre
de l’image
image_sepia transforme une image en tons sepia
Créer ses propres filtres
Dans $dossier_squelette/mes_fonctions.php :
<?php
function mon_filtre($texte){
$texte = (bidouillages en PHP) ...;
return $texte;
}
?>
Dans $dossier_squelette/article.html
[(#TEXTE|mon_filtre)]
CSS de SPIP
Les styles CSS de SPIP sont organisés en plusieurs fichiers :
spip_style.css : styles associés au code généré par SPIP. Indispensables au bon fonctionnement de
SPIP
spip_admin.css : styles associés à la partie privée de SPIP
impression.css : styles utilisés lorsque le navigateur demande une impression
habillage.css : styles liés aux squelettes que vous utilisez
SPIP et le multilinguisme
Trois niveau de configuration disponibles :
par secteur : à chaque secteur du site correspond une langue modifiable par les administrateurs, qui
concerne toutes ses sous-rubriques ainsi que les articles et les brèves qui y sont publiés
par rubrique : on peut changer la langue pour chacune des rubriques du site, pas seulement celles de
premier niveau
par article : la langue peut être modifiée au niveau de chaque article ; ce choix est compatible avec
les précédents
Obtenir les traductions d'un article
Il faut utiliser le critère {traduction} afin d'afficher les traductions de l'article courant :