Certains comportements des pages de votre site peuvent être modifiés au moyen de variables PHP. Ces variables sont normalement définies par SPIP, mais, pour obtenir une personnalisation plus fine du site, le webmestre peut les modifier.
Où indiquer ces variables ?
Inutile d’entrer dans le code source de SPIP lui-même pour fixer ces variables (ouf !).
- Pour l’ensemble du site
Si vous voulez fixer ces variables pour l’intégralité du site, vous pouvez les indiquer comme globales, avec une syntaxe un peu différente, dans un fichier intitulé mes_fonctions.php (mes_fonctions.php3 dans les versions antérieurs à SPIP 1.9), placé à la racine du site, ou, de préférence, dans votre dossier squelettes/ (cf. Où placer les fichiers de squelettes ?).
Il faudra éventuellement créer ce fichier, et entourer les définitions de vos variables par les marqueurs <?php et ?>, voir les exemples ci-dessous.
- Pour chaque type de squelette
[SPIP 1.4] Vous pouvez aussi définir ces variables squelette par squelette. Pour cela, il faut les installer au début du fichier PHP appelant le squelette (par exemple article.php3, rubrique.php3...). Elles s’insèrent naturellement à côté des variables obligatoires $fond et $delais. Voir les exemples.
Les variables du texte
Ces variables sont utilisées lors du calcul de la mise en page (correction typographique) par SPIP.
- $debut_intertitre fixe le code HTML inséré en ouverture des intertitres (par le raccourci {{{). En standard, sa valeur est :
- $fin_intertitre est le code HTML inséré en fermeture des intertitres (raccourci }}}). Sa valeur normale est :
- $ouvre_ref est le code d’ouverture des appels des notes de bas de page ; par défaut, c’est une espace insécable et un crochet ouvrant ;
- $ferme_ref est le code de fermeture des appels des notes de bas de page ; par défaut, c’est un crochet fermant.
- $ouvre_note est le code d’ouverture de la note de bas de page (telle qu’elle apparaît dans #NOTES) ; par défaut, un crochet ouvrant ;
- $ferme_note est le code de fermeture des notes de bas de page (un crochet fermant).
Des choix alternatifs pourront être par exemple d’utiliser des parenthèses ; ou, plus joliment, d’ouvrir avec le tag HTML <sup>, et de fermer avec </sup>.
- Le fichier puce.gif et la variable $puce. Lorsque vous commencez une nouvelle ligne par un tiret, SPIP le remplace par une petite « puce » graphique. Cette puce est constituée par le fichier puce.gif installé à la racine du site ; vous pouvez modifier ce fichier selon vos besoins. Mais vous pouvez aussi décider de fixer vous-même le choix de la puce, au travers de la variable $puce. Par exemple pour indiquer un autre fichier graphique :
ou par un élément HTML non graphique :
A partir de la version 1.9.2, et en cas de mutualisation, on peut aussi mettre dans config/mes_options.php, et non pas dans squelettes/mes_fonctions la variable suivante :
- $nombre_surligne représente le nombre maximum de fois où un mot recherché sera surligné dans le texte. Par défaut, cette valeur est définie à 4.
- $ligne_horizontale est le code de remplacement du raccourci typographique ---- (quatre tirets) ou ____ (quatre caractères de soulignement) qui permet d’insérer une ligne horizontale dans le texte. Par défaut, c’est le code <hr class="spip" />
.
- $url_glossaire_externe est l’adresse utilisé pour le raccourcis automatiques [?SPIP] vers un glossaire. Par défaut, le glossaire externe renvoie vers l’encyclopédie libre wikipedia.org.
Les variables pour les forums publics
Il existe des variables permettant de fixer le comportement des forums publics avec des mots-clés.
N.B. : Ces variables ne sont utilisées que lorsque vous créez des forums publics dans lesquels les visiteurs peuvent sélectionner des mots-clés ; leur utilisation est donc extrêmement spécifique (et pas évidente...).
- $afficher_texte (« oui »/« non »). Par défaut, les forums publics sont conçus pour permettre aux visiteurs d’entrer le texte de leur message ; mais lorsque l’on propose le choix de mots-clés dans ces forums, on peut décider qu’aucun message n’est utile, seul la sélection des mots-clés importe. Dans ce cas, on pourra indiquer :
- $afficher_groupe permet d’indiquer les différents groupes de mots-clés que l’on souhaite proposer dans tel forum. En effet, tous les forums sur un site ne sont pas forcément identiques, et si, à certains endroits, on peut vouloir afficher une sélection de tous les groupes de mots-clés (ceux que l’ont a rendu accessibles aux visiteurs depuis l’espace privé), à d’autres endroits, on peut vouloir n’utiliser que certains groupes, voire aucune groupe (pas de sélection de mots-clés du tout).
La variable $afficher_groupe est un tableau (array), et se construit donc de la façon suivante :
impose l’affichage uniquement des groupes 3 et 5.
interdit l’utiliser des mots-clés dans ces forums (puisqu’il n’existe pas de groupe de mots-clés numéroté 0).
Si l’on n’indique rien (on ne précise pas $afficher_groupe), tous les groupes de mots-clés indiqués, dans l’espace privé, comme « proposés aux visiteurs du site public » sont utilisés.
Interdire l’affichage des boutons d’admin
Toutes les pages de squelette se voient ajouter des « boutons d’amin » (notamment : « recalculer cette page ») lorsqu’on est administrateur et qu’on a activé le cookie de correspondance. Cette fonctionnalité, très pratique pour gérer le site, peut s’avérer malpratique dans certains cas ; par exemple pour des fichiers XML, que l’on ne veut en aucun cas voir perturbés par de tels ajouts.
[SPIP 1.7] La variable flag_preserver permet d’interdire ces affichages.
On verra par exemple l’utilisation de cette variable dans backend.php3.
Le dossier des squelettes
Depuis SPIP 1.5 : Si l’on souhaite mettre les squelettes de son site dans un dossier particulier, par exemple pour faire des essais de différents jeux de squelettes trouvés sur Internet, ou parce qu’on aime que les choses soient bien rangées, etc., il est possible de fixer la variable $dossier_squelettes, dans le fichier mes_fonctions.php placé à la racine du site, ou de préférence, dans ecrire/mes_options.php.
À partir de ce moment-là, SPIP ira chercher en priorité les squelettes présents dans le dossier design/ (que vous aurez créé à la racine du site). Si, de plus, vous utilisez <INCLURE{fond=xxx}>, SPIP ira chercher le fichier xxx.html d’abord dans design/, puis, s’il n’y figure pas, à la racine du site.
Les avantages de ce rangement peuvent sembler évidents (meilleure séparation du code de spip et de la structure du site, possibilité de changer tout un ensemble de squelettes d’un seul coup, etc.) ; l’inconvénient principal est qu’il sera plus difficile de visualiser les squelettes via un simple navigateur. En effet, même s’ils sont situés dans ce sous-dossier, l’HTML contenu dans ces fichiers de squelette doit être conçu comme s’ils étaient à la racine. Ainsi, les liens vers les images ou les CSS, notamment, risquent de « casser ».
Cette variable permet d’indiquer un ou plusieurs dossiers où SPIP cherchera les squelettes en priorité :
Ceci ouvre différentes possibilités, comme :
- essayer un nouveau jeu de squelettes sans écraser l’ancien,
- organiser vos squelettes en une arborescence de sous-répertoires : mes_skel:mes_skel/rss:mes_skel/formulaires:mes_skel/mailing,
- gérer dynamiquement plusieurs jeux de squelettes grâce à des plug-ins comme le switcher,
- etc.
Exemples
- Pour modifier des variables uniquement pour un certain type de squelettes (par exemples pour les pages de rubriques), il suffit de les définir dans le fichier d’appel de ces squelettes. Par exemple, pour les rubriques, on peut fixer des valeurs directement dans rubrique.php3 :
Ici, on a modifié la valeur de l’espace autour des logos.
- Pour modifier des valeurs de variables pour l’ensemble du site, on peut les définir dans le fichier mes_fonctions.php.
Attention, lorsqu’on définit des valeurs dans ce fichier, il faut impérativement utiliser la syntaxe $GLOBALS['xxx'] pour chacune des variables à personnaliser. Par exemple, pour définir la valeur de $debut_intertitre, on utilise la syntaxe $GLOBALS['debut_intertitre'].
L’utilisation de cette syntaxe est imposée par des impératifs de sécurité des sites.
Il existe d’autres variables permettant de modifier le comportement de SPIP au niveau technique. Ces variables sont décrites sur le site de documentation technique.

SPIP 1.9.2