Met het baken #SESSION_SET
voeg je met de syntax #SESSION_SET{variabele, waarde}
een waarde toe aan een PHP tabel onder de vorm $GLOBALS['visiteur_session']['variabele'] = 'waarde';
.
De gegevens kunnen opnieuw worden gelezen met behulp van #SESSION{variabele}
Met dit baken kunnen dus gegevens worden toegevoegd die gedurende de gehele SPIP-sessie van de bezoeker toegankelijk blijven. Je kan deze gegevens dus onbeperkt blijven gebruiken zonder een bepaalde lus of andere handeling opnieuw te hoeven doen.
De syntax
De basissyntax is zeer eenvoudig:
#SESSION_SET{variabele,waarde}
.
Het element ’variabele’ is de naam waaraan je wilt refereren en ’waarde’ is de inhoud ervan.
Praktische toepassing
Het gebruik van het baken #SESSION_SET{variabele,waarde}
is met name geschikt op een site waarop moet worden ingelogd en op dat moment bepaalde aanvullende gegevens worden opgeslagen.
Geef je het baken #SESSION
Op een pagina weer, dan zul je zien dat het veel gegevens bevat, met name over de aangemelde persoon. De weergave van al deze elementen gebeurt via #SESSION, behalve wanneer je er extra velden aan toevoegd.
Met #SESSION{extra}
krijg je in tekst formaat de ienhoud van het veld op de volgende wijze te zien:
a:2{s:12:"id_werknemer";s;1:"1";s:12:"universiteit";s:5:"Kader";}
.
Dit laat je toe te controleren of het daadwerkelijk de gegevens zijn die je zoekt, maar de weergave laat te wensen over... [1]
Hoe gaan we dit oplossen? We doen het met #SESSION_SET
, maar we gebruiken ook het baken #EXTRA
.
Wanneer je de opleiding wilt tonen:
In een lus AUTEURS wil ik de opleiding van deze persoon weergeven:
<BOUCLE_auteur(AUTEURS){id_auteur=#SESSION{id_auteur}}{tout}>#SESSION_SET{opleiding,(#EXTRA|opleiding)}
</BOUCLE_auteur>
En nu kan je op iedere pagina de opleiding weergeven:
[(#SESSION{opleiding})]
Je kunt hem zo gebruiken, in een lus, maar ook als voorwaarde in een lus, zoals:
<BOUCLE_art(ARTICLES) {id_rubrique}{titre_mot = #SESSION{opleiding}} {par num titre, date} {doublons} {pagination 20}>
Een stapje verder?
Je kunt met SPIP ook een externe database benaderen en dus ook met behulp van dit baken gegevens uit die database halen en tijdens de sessie gebruiken!