Déclarer des options

Lorsqu’un visiteur du site demande à voir une page, qu’elle soit déjà en cache ou non, SPIP exécute un certain nombre d’actions, dont celles de charger des fichiers d’options. Ces options peuvent par exemple définir des constantes ou modifier des variables globales.

Ces options peuvent être créées dans le fichier config/mes_options.php ou depuis un plugin en déclarant le nom du fichier dans plugin.xml tel que <options>prefixePlugin_options.php</options>.

Tous les fichiers d’options (celui du site, puis de tous les plugins) sont chargés à chaque appel de l’espace public et de l’espace privé ; ils doivent donc être les plus légers et économes possible.

Cet exemple, issu d’une contribution nommée « switcher », propose de modifier le jeu de squelettes utilisé par le site (l’adresse du dossier plus précisément) en fonction d’un paramètre var_skel dans l’url.

<?php

// 'nom' => 'chemin du squelette'
$squelettes = array(
  '2008'=>'squelettes/2008',
  '2007'=>'squelettes/2007',
);

// Si l'on demande un squelette particulier qui existe,  on pose un cookie, sinon suppression du cookie
if (isset($_GET['var_skel'])) {
  if (isset($squelettes[$_GET['var_skel']]))
    setcookie('spip_skel', $_COOKIE['spip_skel'] = $_GET['var_skel'], NULL, '/');
  else
    setcookie('spip_skel', $_COOKIE['spip_skel'] = '', -24*3600, '/');
}

// Si un squelette particulier est sauve, on le definit comme dossier squelettes
if (isset($_COOKIE['spip_skel']) AND isset($squelettes[$_COOKIE['spip_skel']]))
  $GLOBALS['dossier_squelettes'] = $squelettes[$_COOKIE['spip_skel']];

?>

Auteur Matthieu Marcillaud Publié le : Mis à jour : 12/03/23

Traductions : English, français