#SESSION_SET
é usado como #SESSION_SET{variável, valor}
, com o valor sendo inserido na matriz PHP no formato $GLOBALS['visiteur_session']['variável'] = 'valor';
A informação pode ser lida de novo via #SESSION{variável}
Esta tag permite assim, incluir qualquer dado à sessão aberta no momento em que o visitante acessa o SPIP. Ela pode ser usada sem moderação para conservar os elementos de que queremos dispor no decorrer da sessão aberta, sem necessidade de refazer um loop ou outra manipulação.
A sintaxe
A sintaxe básica é muito simples:
#SESSION_SET{variável,valor}
O elemento ’variável’ é qualquer nome que permita que se faça referência ao que se quer usar, e ’valor’ é o seu conteúdo. Mas um exemplo é melhor que um longo discurso.
Por exemplo, eu sou apaixonado por elefantes, e eu quero demonstrá-lo a todo o momento... Assim::
#SESSION_SET{minhapaixao,elefantes}
atribuirá ’elefantes’ a ’minhapaixao’.
Para usar, é muito simples: #SESSION{minhapaixao}
exibirá ’elefantes’.
Utilização prática
Você viu acima um exemplo não muito concreto. O uso da tag #SESSION_SET{variável,valor}
é particularmente pertinente quando o acesso ao site é feito com identificação (do tipo ’login público’) para incluir certos dados ligados, de um modo ou outro, à sessão da pessoa logada.
Se você exibir a tag #SESSION
numa página, verá que ela contém um grande número de dados, notadamente relacionados ao autor ou visitante identificado. A exibição de um desses dados faz-se diretamente via #SESSION, salvo se você incluiu campos extras.
Em #SESSION{extra}
, verá ser exibido, em formato texto, o conteúdo desse campo, sob a forma (por ex.)
a:2{s:10:"id_salario";s;1:"1";s:7:"escola";s:5:"Quadro";}
.
Isso permite-lhe verificar se ela dispões do que você procura, mas a exibição deixa a desejar...
[1]
O que fazer para remediar isso? Usar #SESSION_SET, claro, com a tag #EXTRA!!
Eu quero exibir a escola :
Num loop AUTEURS, eu voui incluir na minha sessão a escola da pessoa identificada:
<BOUCLE_autor(AUTEURS){id_auteur=#SESSION{id_auteur}}{tout}>#SESSION_SET{escola,(#EXTRA|escola)}
</BOUCLE_autor>
E pronto! Agora, não importa em que página do site, você pode exibir a escola:
[(#SESSION{escola})]
Você pode usá-la isoladamente, ou num loop, seja para exibir a escola, seja num critério específico, por ex.
<BOUCLE_materias(ARTICLES) {id_rubrique}{titre_mot = #SESSION{escola}} {par num titre, date} {doublons} {pagination 20}>
Ir mais longe?
O SPIP permite abrir conexões a bases de dados externas às do SPIP, mesmo que remotas... Nada mais simples, agora, do que incluir um ou mais dados recuperados dessas bases à sessão corrente... Um (ou mais) loops ao abrir, alguns #SESSION_SET{variável,valor}
, e terei à minha disposição, rapidamente, tudo o que preciso para dinamizar o meu site...