#SESSION_SET

Permet d’insérer dans la balise #SESSION des données supplémentaires

  • Apparu en : SPIP 2.0

#SESSION_SET s’utilise ainsi on a #SESSION_SET{variable, valeur}, la valeur sauvegardée dans le tableau php sous la forme $GLOBALS['visiteur_session']['variable'] = 'valeur';

L’information peut être à nouveau lue via #SESSION{variable}

Cette balise permet donc d’ajouter une donnée quelconque à la session ouverte lors de l’accès d’un internaute à SPIP. Elle peut être utilisée sans modération pour conserver des éléments dont on souhaite disposer tout au long de la session ouverte, sans avoir besoin de refaire une boucle ou une autre manipulation.

La syntaxe

La syntaxe de base est très simple :
#SESSION_SET{variable,valeur}
L’élément ’variable’ est un nom quelconque qui permettra de faire référence à ce que l’on veut utiliser, et ’valeur’ est son contenu. Mais un exemple vaut un long discours.

Par exemple, je suis passionné par les éléphants, et je voudrais l’afficher à tout moment ... Donc :
#SESSION_SET{mapassion,éléphants} mettra ’éléphants’ dans ’ma passion’.

Pour l’utiliser, c’est très simple : #SESSION{mapassion} affichera ’éléphants’.

Utilisation pratique

Vous n’avez vu ci-dessus qu’un exemple pas forcément très concret. L’utilisation de la balise #SESSION_SET{variable,valeur} est particulièrement pertinent dès lors qu’un accès à un site se fait avec identification (du type ’login public’) afin d’ajouter certaines données liées d’une façon ou d’une autre, dans la session de la personne loguée.

Si vous affichez la balise #SESSION sur une page, vous verrez qu’elle contient un grand nombre de données, notamment concernant l’auteur ou visiteur identifié. L’affichage d’une de ces données se fait directement via #SESSION, sauf si vous avez ajouté des champs extra.

Dans #SESSION{extra}, vous verrez s’afficher, en format texte le contenu de ce champ, sous la forme (par ex.)

a:2{s:10:"id_salarie";s;1:"1";s:7:"college";s:5:"Cadre";}.

Cela vous permet bien sûr de vérifier qu’il y a bien ce que vous cherchez, mais l’affichage laisse à désirer ... [1]

Que faire pour remédier à cela ? Utiliser #SESSION_SET bien sûr, avec la balise #EXTRA !!

Je voudrais afficher le collège :

Dans une boucle AUTEURS, je vais ajouter à ma session le collège de la personne identifiée :

<BOUCLE_auteur(AUTEURS){id_auteur=#SESSION{id_auteur}}{tout}>#SESSION_SET{college,(#EXTRA|college)}
</BOUCLE_auteur>

Et voilà ! Maintenant, sur n’importe quelle page du site, affichez le collège :

[(#SESSION{college})]

Vous pouvez l’utiliser tout seul, ou dans une boucle, soit pour afficher le collège, soit dans un critère spécifique, par ex.

<BOUCLE_articles(ARTICLES) {id_rubrique}{titre_mot = #SESSION{college}} {par num titre, date} {doublons} {pagination 20}>

Aller plus loin ?

Rappelons-nous que spip 2.0.x permet maintenant d’ouvrir des connexion à des bases de données extérieures à celles de spip, même distantes ... Quoi de plus simple, maintenant, d’ajouter une ou des données issues de ces bases à la session ouverte ... Une (ou plusieurs) boucles à l’ouverture, quelques #SESSION_SET{variable,valeur}, et j’ai à ma disposition, rapidement, tout ce que dont j’ai besoin pour dynamiser mon site ...

Voir aussi

Notes

[1rappel : pour afficher en mode brut (pour vérification) le contenu détaillé de la balise, il est possible d’utiliser l’écriture :
[<pre>(#SESSION*|unserialize|var_export{1})</pre>]

Auteur cam.lafit, VALLETEAU de MOULLIAC Publié le : Mis à jour : 29/06/23

Traductions : català, English, français, Nederlands