Balise_session

Bonjour à tous,
J'ai installé le plugin balise_session et je n'ai pas dû tout comprendre.
J'ai simplement créé un bouton qui se remplace par un autre lorsqu'un adhérent est connecté de la manière suivante :
<?php if ($auteur_session) {?>
<li><a href="#URL_PAGE{deconnexion}"
title="Se déconnecter">Bonjour #SESSION{nom}: déconnexion</a></li>
<?php }
else {?>
<li><a href="#URL_PAGE{connexion}" title="Identification des adhérents">Adhérents</a></li>
<?php } ?>
A la première connexion, tout va bien, le bouton affiche le nom
du connecté.
Si je me déconnecte et me reconnecte sous un autre login
la balise #SESSION{nom} conserve le nom du login précédent.
Comment actualiser cette balise pour chaque login sans être obligé de vider le cache ?
Merci

Alain HUSSON <alain.husson <at> ac-besancon.fr> writes:

Bonjour à tous,
J'ai installé le plugin balise_session et je n'ai pas dû tout comprendre.
J'ai simplement créé un bouton qui se remplace par un autre lorsqu'un
adhérent est connecté de la manière suivante :
<?php if ($auteur_session) {?>
<li><a href="#URL_PAGE{deconnexion}"
title="Se déconnecter">Bonjour #SESSION{nom}: déconnexion</a></li>
<?php }
else {?>
<li><a href="#URL_PAGE{connexion}" title="Identification des
adhérents">Adhérents</a></li>
<?php } ?>
A la première connexion, tout va bien, le bouton affiche le nom
du connecté.
Si je me déconnecte et me reconnecte sous un autre login
la balise #SESSION{nom} conserve le nom du login précédent.
Comment actualiser cette balise pour chaque login sans être obligé de
vider le cache ?
Merci

L'objectif de la balise #SESSION est de faire disparaitre le php des squelettes
en ce qui concerne l'authentification et la constitution de page individualisée.

On remplace donc le code type :

<?php if ($auteur_session) {?>

par :

[(#SESSION{id_auteur}|?{texte si connecte})] ou bien
[(#SESSION{id_auteur}|?{' '})

     #SESSION{nom}

]

Le plugin embarque une page de démonstration, illustrant les quelques exemples
qui l'accompagnent et dont on peut s'inspirer.

Enfin, comme il est écrit dans la doc, on fait appel aux squelettes contenant
les données de session avec un <INCLURE> un peu spécial :

<INCLURE(session.php){fond=ma_page}> qui permet, justement, de générer des pages
spécifiques pour chaque visiteur sans nécessairement vider le cache.

à noter que la balise et les inclusions conserveront ces particularités dans la
prochaine version de SPIP, qui intègre ce mécanisme, avec d'autres
améliorations. Notament Le code (session.php) dans les <INCLURE>
ne sera plus nécessaire.

--
James

James a écrit :

Alain HUSSON <alain.husson <at> ac-besancon.fr> writes:

Bonjour à tous,
J'ai installé le plugin balise_session et je n'ai pas dû tout comprendre.
J'ai simplement créé un bouton qui se remplace par un autre lorsqu'un adhérent est connecté de la manière suivante :
<?php if ($auteur_session) {?>
<li><a href="#URL_PAGE{deconnexion}"
title="Se déconnecter">Bonjour #SESSION{nom}: déconnexion</a></li>
<?php }
else {?>
<li><a href="#URL_PAGE{connexion}" title="Identification des adhérents">Adhérents</a></li>
<?php } ?>
A la première connexion, tout va bien, le bouton affiche le nom
du connecté.
Si je me déconnecte et me reconnecte sous un autre login
la balise #SESSION{nom} conserve le nom du login précédent.
Comment actualiser cette balise pour chaque login sans être obligé de vider le cache ?
Merci

L'objectif de la balise #SESSION est de faire disparaitre le php des squelettes
en ce qui concerne l'authentification et la constitution de page individualisée.

On remplace donc le code type :

<?php if ($auteur_session) {?>

par :

[(#SESSION{id_auteur}|?{texte si connecte})] ou bien [(#SESSION{id_auteur}|?{' '})

     #SESSION{nom}

]

Le plugin embarque une page de démonstration, illustrant les quelques exemples
qui l'accompagnent et dont on peut s'inspirer.

Enfin, comme il est écrit dans la doc, on fait appel aux squelettes contenant
les données de session avec un <INCLURE> un peu spécial :

<INCLURE(session.php){fond=ma_page}> qui permet, justement, de générer des pages
spécifiques pour chaque visiteur sans nécessairement vider le cache.

à noter que la balise et les inclusions conserveront ces particularités dans la
prochaine version de SPIP, qui intègre ce mécanisme, avec d'autres améliorations. Notament Le code (session.php) dans les <INCLURE>
ne sera plus nécessaire.

--
James

Merci James, je commence à comprendre.
j'ai remplacé le php par :
[(#SESSION{id_auteur}|?{' '})<a href="#URL_PAGE{deconnexion}" title="Se déconnecter">Bonjour #SESSION{nom}: déconnexion</a>]
Le bouton s'affiche bien, donc pour le if, ça va mais
comment traiter le else ?
D'autre part, si je me déconnecte et que je me reconnecte sous un autre login, c'est toujours le nom du premier login qui s'affiche et non pas le second. Que faire ?
Merci pour votre aide

On 26 nov, 15:41, Alain HUSSON <alain.hus...@ac-besancon.fr> wrote:

James a écrit :

> Alain HUSSON <alain.husson <at> ac-besancon.fr> writes:

>> Bonjour à tous,
>> J'ai installé le plugin balise_session et je n'ai pas dû tout comprendre.
>> J'ai simplement créé un bouton qui se remplace par un autre lorsqu'un
>> adhérent est connecté de la manière suivante :
>> <?php if ($auteur_session) {?>
>> <li><a href="#URL_PAGE{deconnexion}"
>> title="Se déconnecter">Bonjour #SESSION{nom}: déconnexion</a></li>
>> <?php }
>> else {?>
>> <li><a href="#URL_PAGE{connexion}" title="Identification des
>> adhérents">Adhérents</a></li>
>> <?php } ?>
>> A la première connexion, tout va bien, le bouton affiche le nom
>> du connecté.
>> Si je me déconnecte et me reconnecte sous un autre login
>> la balise #SESSION{nom} conserve le nom du login précédent.
>> Comment actualiser cette balise pour chaque login sans être obligé de
>> vider le cache ?
>> Merci

> L'objectif de la balise #SESSION est de faire disparaitre le php des squelettes
> en ce qui concerne l'authentification et la constitution de page individualisée.

> On remplace donc le code type :

> <?php if ($auteur_session) {?>

> par :

> [(#SESSION{id_auteur}|?{texte si connecte})] ou bien
> [(#SESSION{id_auteur}|?{' '})

> #SESSION{nom}

> ]

> Le plugin embarque une page de démonstration, illustrant les quelques exemples
> qui l'accompagnent et dont on peut s'inspirer.

> Enfin, comme il est écrit dans la doc, on fait appel aux squelettes contenant
> les données de session avec un <INCLURE> un peu spécial :

> <INCLURE(session.php){fond=ma_page}> qui permet, justement, de générer des pages
> spécifiques pour chaque visiteur sans nécessairement vider le cache.

> à noter que la balise et les inclusions conserveront ces particularités dans la
> prochaine version de SPIP, qui intègre ce mécanisme, avec d'autres
> améliorations. Notament Le code (session.php) dans les <INCLURE>
> ne sera plus nécessaire.

> --
> James

Merci James, je commence à comprendre.
j'ai remplacé le php par :
[(#SESSION{id_auteur}|?{' '})<a href="#URL_PAGE{deconnexion}" title="Se
déconnecter">Bonjour #SESSION{nom}: déconnexion</a>]
Le bouton s'affiche bien, donc pour le if, ça va mais
comment traiter le else ?

[(#SESSION{id_auteur}|?{'si vrai','si faux'})]

D'autre part, si je me déconnecte et que je me reconnecte sous un autre
login, c'est toujours le nom du premier login qui s'affiche et non pas
le second. Que faire ?

(Re)lire la doc du plugin et la réponse de James ?-)

La solution proposée est de déplacer le code concerné dans un fichier
à inclure dans ta page, en utilisant la syntaxe donnée par James. Il y
a d'autres solutions, mais dans le cas que tu donnes, c'est la plus
adaptée.

<technique>
ton problème vient de ce que la page est mise en cache à la première
connection. Le fichier session.php utilisé par le inclure ajoute un
marqueur spécifique au cache, de manière à ce que le calcul du cache
du squelette inclus tienne compte de l'id_auteur (donc, un cache
différent par id_auteur).
</technique>

HTH

bruno desthuilliers a écrit :

On 26 nov, 15:41, Alain HUSSON <alain.hus...@ac-besancon.fr> wrote:

James a écrit :

Alain HUSSON <alain.husson <at> ac-besancon.fr> writes:

Bonjour à tous,
J'ai installé le plugin balise_session et je n'ai pas dû tout comprendre.
J'ai simplement créé un bouton qui se remplace par un autre lorsqu'un
adhérent est connecté de la manière suivante :
<?php if ($auteur_session) {?>
<li><a href="#URL_PAGE{deconnexion}"
title="Se déconnecter">Bonjour #SESSION{nom}: déconnexion</a></li>
<?php }
else {?>
<li><a href="#URL_PAGE{connexion}" title="Identification des
adhérents">Adhérents</a></li>
<?php } ?>
A la première connexion, tout va bien, le bouton affiche le nom
du connecté.
Si je me déconnecte et me reconnecte sous un autre login
la balise #SESSION{nom} conserve le nom du login précédent.
Comment actualiser cette balise pour chaque login sans être obligé de
vider le cache ?
Merci

L'objectif de la balise #SESSION est de faire disparaitre le php des squelettes
en ce qui concerne l'authentification et la constitution de page individualisée.
On remplace donc le code type :
<?php if ($auteur_session) {?>
par :
[(#SESSION{id_auteur}|?{texte si connecte})] ou bien
[(#SESSION{id_auteur}|?{' '})
     #SESSION{nom}
]
Le plugin embarque une page de démonstration, illustrant les quelques exemples
qui l'accompagnent et dont on peut s'inspirer.
Enfin, comme il est écrit dans la doc, on fait appel aux squelettes contenant
les données de session avec un <INCLURE> un peu spécial :
<INCLURE(session.php){fond=ma_page}> qui permet, justement, de générer des pages
spécifiques pour chaque visiteur sans nécessairement vider le cache.
à noter que la balise et les inclusions conserveront ces particularités dans la
prochaine version de SPIP, qui intègre ce mécanisme, avec d'autres
améliorations. Notament Le code (session.php) dans les <INCLURE>
ne sera plus nécessaire.
--
James

Merci James, je commence à comprendre.
j'ai remplacé le php par :
[(#SESSION{id_auteur}|?{' '})<a href="#URL_PAGE{deconnexion}" title="Se
déconnecter">Bonjour #SESSION{nom}: déconnexion</a>]
Le bouton s'affiche bien, donc pour le if, ça va mais
comment traiter le else ?

[(#SESSION{id_auteur}|?{'si vrai','si faux'})]

D'autre part, si je me déconnecte et que je me reconnecte sous un autre
login, c'est toujours le nom du premier login qui s'affiche et non pas
le second. Que faire ?

(Re)lire la doc du plugin et la réponse de James ?-)

La solution proposée est de déplacer le code concerné dans un fichier
à inclure dans ta page, en utilisant la syntaxe donnée par James. Il y
a d'autres solutions, mais dans le cas que tu donnes, c'est la plus
adaptée.

<technique>
ton problème vient de ce que la page est mise en cache à la première
connection. Le fichier session.php utilisé par le inclure ajoute un
marqueur spécifique au cache, de manière à ce que le calcul du cache
du squelette inclus tienne compte de l'id_auteur (donc, un cache
différent par id_auteur).
</technique>

HTH

Merci Bruno pour ces compléments. Je vais encore relire la doc du plugin et avec vos conseils essayer de faire fonctionner cette affaire en plaçant le code dans un fichier à inclure. Je vous tiendrai au courant des suites. Encore merci.

Alain HUSSON a écrit :

bruno desthuilliers a écrit :

On 26 nov, 15:41, Alain HUSSON <alain.hus...@ac-besancon.fr> wrote:

James a écrit :

Alain HUSSON <alain.husson <at> ac-besancon.fr> writes:

Bonjour à tous,
J'ai installé le plugin balise_session et je n'ai pas dû tout comprendre.
J'ai simplement créé un bouton qui se remplace par un autre lorsqu'un
adhérent est connecté de la manière suivante :
<?php if ($auteur_session) {?>
<li><a href="#URL_PAGE{deconnexion}"
title="Se déconnecter">Bonjour #SESSION{nom}: déconnexion</a></li>
<?php }
else {?>
<li><a href="#URL_PAGE{connexion}" title="Identification des
adhérents">Adhérents</a></li>
<?php } ?>
A la première connexion, tout va bien, le bouton affiche le nom
du connecté.
Si je me déconnecte et me reconnecte sous un autre login
la balise #SESSION{nom} conserve le nom du login précédent.
Comment actualiser cette balise pour chaque login sans être obligé de
vider le cache ?
Merci

L'objectif de la balise #SESSION est de faire disparaitre le php des squelettes
en ce qui concerne l'authentification et la constitution de page individualisée.
On remplace donc le code type :
<?php if ($auteur_session) {?>
par :
[(#SESSION{id_auteur}|?{texte si connecte})] ou bien
[(#SESSION{id_auteur}|?{' '})
     #SESSION{nom}
]
Le plugin embarque une page de démonstration, illustrant les quelques exemples
qui l'accompagnent et dont on peut s'inspirer.
Enfin, comme il est écrit dans la doc, on fait appel aux squelettes contenant
les données de session avec un <INCLURE> un peu spécial :
<INCLURE(session.php){fond=ma_page}> qui permet, justement, de générer des pages
spécifiques pour chaque visiteur sans nécessairement vider le cache.
à noter que la balise et les inclusions conserveront ces particularités dans la
prochaine version de SPIP, qui intègre ce mécanisme, avec d'autres
améliorations. Notament Le code (session.php) dans les <INCLURE>
ne sera plus nécessaire.
--
James

Merci James, je commence à comprendre.
j'ai remplacé le php par :
[(#SESSION{id_auteur}|?{' '})<a href="#URL_PAGE{deconnexion}" title="Se
déconnecter">Bonjour #SESSION{nom}: déconnexion</a>]
Le bouton s'affiche bien, donc pour le if, ça va mais
comment traiter le else ?

[(#SESSION{id_auteur}|?{'si vrai','si faux'})]

D'autre part, si je me déconnecte et que je me reconnecte sous un autre
login, c'est toujours le nom du premier login qui s'affiche et non pas
le second. Que faire ?

(Re)lire la doc du plugin et la réponse de James ?-)

La solution proposée est de déplacer le code concerné dans un fichier
à inclure dans ta page, en utilisant la syntaxe donnée par James. Il y
a d'autres solutions, mais dans le cas que tu donnes, c'est la plus
adaptée.

<technique>
ton problème vient de ce que la page est mise en cache à la première
connection. Le fichier session.php utilisé par le inclure ajoute un
marqueur spécifique au cache, de manière à ce que le calcul du cache
du squelette inclus tienne compte de l'id_auteur (donc, un cache
différent par id_auteur).
</technique>

HTH

Merci Bruno pour ces compléments. Je vais encore relire la doc du plugin et avec vos conseils essayer de faire fonctionner cette affaire en plaçant le code dans un fichier à inclure. Je vous tiendrai au courant des suites. Encore merci.

Mais oui, mais c'est bien sûr ! j'ai déplacé le code dans un fichier et j'ai inclus ce fichier dans la page avec <INCLURE(session.php){fond=nom de la page contenant le fichier}> et ça marche - le nom du nouveau connecté s'affiche.
Vraiment merci à tous deux pour votre aide.