Lorsque dans un squelette est utilisée #AUTORISER
, #SESSION
ou toute balise demandant à créer un cache différent par session, un identifiant spécifique est calculé avec les informations de session connues du visiteur par la fonction spip_session
. Cet identifiant est utilisé pour nommer les fichiers de cache. Lorsqu’aucune information n’est connue du visiteur, l’identifiant retourné est nul.
Le pipeline definir_session
permet de compléter les informations servant à créer cet identifiant. Il est donc possible de composer des caches uniques s’appuyant sur d’autres paramètres que les données du visiteur.
Le pipeline reçoit et retourne une chaîne de caractères. Il est appelé de la sorte dans le fichier ecrire/inc/utils.php :
$s = pipeline('definir_session',
$GLOBALS['visiteur_session']
? serialize($GLOBALS['visiteur_session'])
. '_' . @$_COOKIE['spip_session']
: ''
);
Remarque : les informations de session pouvant intervenir très tôt dans le fonctionnement de SPIP, il vaut mieux déclarer pour un plugin la fonction du pipeline directement dans un fichier d’options. La déclaration dans le fichier plugin.xml
ne nécessite pas de définir la balise XML <inclure>
dans ce cas là :
<options>prefixPlugin_options.php</options>
<pipeline>
<nom>definir_session</nom>
</pipeline>