Les variables de personnalisation

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 ?

Il est possible de personnaliser la valeur de ces variables dans un fichier config/mes_options.php (voir l’article qui lui est consacré)

Les variables du texte

Ces variables sont utilisées lors du calcul de la mise en page (correction typographique) par SPIP.

-  $GLOBALS['debut_intertitre'] fixe le code HTML inséré en ouverture des intertitres (par le raccourci {{{). En standard, sa valeur est :

$GLOBALS['debut_intertitre'] = "\n<h3 class=\"spip\">\n";

-  $GLOBALS['fin_intertitre'] est le code HTML inséré en fermeture des intertitres (raccourci }}}). Sa valeur normale est :

$GLOBALS['fin_intertitre'] = "</h3>\n";

Pour les notes de bas de page, depuis SPIP 3.0, les personalisations sont désormais passées en « define » au lieu de « globales » [1].

-  _NOTES_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 (<span class="spip_note_ref">&nbsp;[) ;

-  _NOTES_FERME_REF est le code de fermeture des appels des notes de bas de page ; par défaut, c’est un crochet fermant (]</span>) ;

-  _NOTES_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 (<span class="spip_note_ref">[) ;

-  _NOTES_FERME_NOTE est le code de fermeture des notes de bas de page ; par défaut, un crochet fermant (]&nbsp;</span>).

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

-  $GLOBALS['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é dans le dossier squelettes-dist/ à 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 $GLOBALS['puce'].

Par exemple pour indiquer un autre fichier graphique :

$GLOBALS['puce'] = "<img src='ma-puce.png' alt='-' />";

ou par un élément HTML non graphique, comme un caractère unicode :

$GLOBALS['puce'] = "→";

Pour être complet, il existe 4 variables globales :

// puce de l'espace public
$GLOBALS['puce'] = '<span class="spip-puce"></span>'; 
// puce de l'espace public pour les langues RTL comme l 'arabe
$GLOBALS['puce_rtl'] = '<span class="spip-puce"></span>'; 
// puce de l'espace privé
$GLOBALS['puce_prive'] = '<span class="spip-puce"></span>'; 
// puce de l'espace privé pour les langues RTL comme l 'arabe
$GLOBALS['puce_prive_rtl'] = '<span class="spip-puce"></span>'; 

-  $GLOBALS['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" />

-  $GLOBALS['url_glossaire_externe'] est l’adresse utilisée 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...).

-  $GLOBALS['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 :

$GLOBALS['afficher_texte'] = "non";

-  $GLOBALS['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 $GLOBALS['afficher_groupe[]'] est un tableau (array), et se construit donc de la façon suivante :

$GLOBALS['afficher_groupe[]'] = 3;
$GLOBALS['afficher_groupe[]'] = 5;

impose l’affichage uniquement des groupes 3 et 5.

$GLOBALS['afficher_groupe[]'] = 0;

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 $GLOBALS['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.

La variable globale $GLOBALS['flag_preserver'] permet d’interdire ces affichages.

$GLOBALS['flag_preserver'] = true;

Le dossier des squelettes

Pour mettre les squelettes d’un site dans un dossier particulier (par exemple pour mutualiser les sources de SPIP, ou pour faire des essais de différents jeux de squelettes trouvés sur Internet, etc.) il suffit de l’indiquer par la variable $GLOBALS['dossier_squelettes']. Cette variable doit être affectée dans le fichier config/mes_options.php

$GLOBALS['dossier_squelettes'] = 'design';

À 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 sont é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 que les liens vers les images ou les CSS, notamment, doivent tenir compte de cet emplacement. Il existe pour gérer le problème automatiquement la balise #CHEMIN, décrite dans Les balises propres au site. A noter également que la visualisation des squelettes via un simple navigateur sera également gênée, car le visiteur ne les trouvera pas à la racine du site : ça ne dérange en rien le fonctionnement, mais c’est peu compatible avec l’esprit du logiciel libre.

Cette variable permet en fait d’indiquer un ou plusieurs dossiers où SPIP cherchera les squelettes en priorité :

$GLOBALS['dossier_squelettes'] = 'mes_skel1:mes_skel2';

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

    $GLOBALS['debut_intertitre'] = "<h3 class='mon_style_h3'>";
    $GLOBALS['fin_intertitre'] = "</h3>";

    $GLOBALS['ouvre_ref'] = '&nbsp;(';
    $GLOBALS['ferme_ref'] = ')';
    $GLOBALS['ouvre_note'] = '(';
    $GLOBALS['ferme_note'] = ') ';

Voir aussi

Sur le site Programmer.spip.net

Sur le site code.spip.net
Il existe d’autres variables permettant de modifier le comportement de SPIP au niveau technique. .

Notes

Auteur L’équipe de SPIP Publié le : Mis à jour : 23/03/24

Traductions : عربي, català, English, Español, français, italiano, Nederlands, òc lengadocian