#SESSION_SET

(ceci est un message automatique)

Message posté par cam.lafit à la suite de l'article « #SESSION_SET ».

http://www.spip.net/ecrire/?exec=articles&id_article=3984#id174088

** #SESSION_SET

* Je met ci joints un article qui était doublon, j'ai pas le courage de
faire le tri.

Cette balise permet 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{x,y} L'élément 'x'
est un nom quelconque qui permettra de faire référence à ce que l'on
veut utiliser, et 'y' est son contenu. 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}
mettre 'é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 parlant.
L'utilisation de la balise #SESSION_SET{x,y} 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 à 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, sous forme de 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 ... [2]

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_SETx,y, et j'ai à ma disposition,
rapidement, tout ce que dont j'ai besoin pour dynamiser mon site ...