SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

81 visiteurs en ce moment

fontsizeup fontsizedown
[67 commentaires]

Balise #SESSION

jeudi 28 juin 2007, par Développé sur spip-zone, James (Date de rédaction antérieure : 13 novembre 2006).

Toutes les versions de cet article : [Español] [français]

0 vote

Attention, SPIP 2

Ce plugin ne doit pas être utilisé avec les versions récentes de spip (notamment à partir de SPIP 2) car la balise SESSION a été incorporée dans le code du noyau de SPIP. Voir l’article sur #SESSION sur spip.net.

La balise #SESSION fonctionne comme #CONFIG à ceci près qu’elle s’appuie sur le tableau associatif $auteur_session. Le paramètre passé en argument détermine la valeur de session à afficher. Pour avoir une liste exhaustive des valeurs possible, consultez la doc de la fonction ajouter_session

Installation

Zip - 9.1 ko
plugin balise_session
Téléchargez, dézippez dans le répertoire plugins/ de votre site et activez le plugin Balise Session
  • Téléchargez l’archive ci-contre,
  • décompressez là dans le répertoire plugins/ de votre site,
  • dans la page de gestion des plugin de votre site, activez le plugin Balise Session

Vous pourrez accéder à cette même documentation sur votre propre site (spip.php?page=session) avec des exemples interactifs.

Principe

Pour reconnaître le visiteur authentifié, on s’appuie sur le mécanisme de session de SPIP. Toutefois, comme cette valeur est affichée dans un squelette, on doit aussi tenir compte du cache et empêcher que les données d’un visiteur soient utilisée par les suivants, le temps de la durée de vie de la page.

Deux moyens peuvent être employés :

  • Définir à 0 la durée de vie du cache de chaque page où on affichera ou testera le contenu de la balise #SESSION. C’est une mauvaise idée en matière de performance globale pour le site
  • Créer une page de cache de chaque page pour chaque visiteur authentifié. Ainsi, les visiteur accèdent à des pages distinctes calculées moins souvent. C’est le principe retenu dans cette page.

On introduit donc, en plus de la balise, un script session.php, appelable par la balise standard <INCLURE()>. Ce script est un clone du script standard de spip (spip.php) à ceci-près qu’il défini un marqueur de squelette basé sur l’identifiant du visiteur, s’il est défini.

Appel spécifique des noisettes

On fera appel à la balise #SESSION dans des squelettes inclus (qu’on appelle aussi noisettes...)

<INCLURE(session.php){fond=page_speciale}>

page_speciale.html contiendra l’un au l’autre des exemples du plugin, ou de leurs combinaisons, ou d’autres éléments issus de cette page de démonstration, ou bien encore, de votre propre cru ! :D

Gestion de valeurs supplémentaires

Il est possible de gérer des valeurs supplémentaires à celles contenues dans le tableau $auteur_session. Pour cela, il faut ajouter le paramètre {session} à l’appel de squelettes inclus. Dès lors, la balise #SESSION s’appuiera aussi sur le tableau associatif $_SESSION php standard (cf. Le support des sessions de PHP).

Exemple : <INCLURE(session.php){session}{fond=boite_session}>

Ce plugin introduit pour ces valeurs, une action permettant de créer/affecter une valeur en lui précisant un nom, ou de vider cette valeur. Pour faire appel à cette action, on utlisera soit un formulaire ad hoc, soit, dans ce type précis de noisettes, la balise #URL_ACTION_AUTEUR de la manière suivante :

<a href="[(#URL_ACTION_AUTEUR{session,[(#ENV{session})]-affecter-nom-valeur,url})]">
texte du lien
</a>

ou

  • nom sera le code employé pour restituer la valeur via la notation #SESSION{nom},
  • valeur pourra être une balise spip ou une constante,
  • url, l’adresse de destination du lien, #SELF ou tout autre adresse imaginable.

ou bien

<a href="[(#URL_ACTION_AUTEUR{session,[(#ENV{session})]-vider-nom,url})]">
texte du lien
</a>

Démonstration

spip-zone.info

Retour en haut de la page

67 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7

  • Répondre à ce message

    12 février 14:25 , par livier

    Dans mon cas la noisette comprend elle même les test de session pour afficher soit le formulaire de connexion et le formulaire d’inscription au site, soit les identifiants de la personne connectée.

    En tout cas ça marche pour moi et j’espére que ce sera clair pour les autres. Merci

  • Répondre à ce message

    12 février 10:01 , par echo

    Oui, mais il faut être sur que tu testes que la session existe avant d’envoyer la page ! Donc bien utiliser #SESSION. Par exemple, si on veut afficher une noisette "reserver_a_admin.html" lorsque le statut de la session de l’internaute est administrateur il faut faire en SPIP2 :

  • Répondre à ce message

    10 février 18:30 , par livier

    A toutes fins utiles pour autrui, l’adaptation à faire était on ne peux plus simple dans mon cas :

    <INCLURE{fond=boite_session}> fonctionne. J’ai juste enlevé (session.php){session} pour voir ... et ça a marché.

    J’espère que ce n’est pas un vilain hack qui me jouera des tours un jours ! Validation des programmeurs appréciée ... ;-)

  • Répondre à ce message

    5 février 10:29 , par cam.lafit

    Bonjour

    Cette contribution n’est plus necessaire en SPIP2 car cela fait parti du noyau. Il suffit maintenant d’utiliser #SESSION et #SESSION_SET.

    Il y a des bouts de documentation sur http://www.spip.net/fr_article3979.html (publié) et http://www.spip.net/ecrire/?exec=ar... (article en cours de rédaction)

  • Répondre à ce message

    5 février 05:05 , par livier

    J’utilisais ce plugin en appelant dans mes squelettes quelque chose de la forme : <INCLURE(session.php){session}{fond=boite_session}>

    Je comprend que le plugin n’est plus nécessaire avec SPIP2, mais mon INCLURE ne donne plus rien non plus.

    Quelle est la nouvelle approche ?

  • Répondre à ce message

    1er février 19:52 , par aRTHEGONe

    Il existe une explication simple sur l"utilisation de la balise SESSION avec des affichage si connecté ou non.

    http://superpratix.com/?Le-filtre-o...

  • Répondre à ce message

    31 décembre 2008 10:03 , par ventrea

    Regarde bien le texte en spip 2 la balise session est incorporé dans le core tu n’as pas besoin de ce plugin. a+

  • Répondre à ce message

    31 décembre 2008 09:42 , par tiamat59

    Bonjour,

    J’ai un petit souci quand je veux activer le plugin session il me dit qu’il faut être en version 1.9 ou 2.0 minimum Hors je suis en version 2.0.2 j’ai réinstaller tous 2 fois. Je ne comprend pas, est un problème connu ?

  • Répondre à ce message

    30 septembre 2008 13:30 , par joz

    Exactement le même erreur chez moi :
    Fatal error : Call to undefined function spip_unlink() in /var/www/mon_chemin/plugins/balise_session/public/cacher.php on line 168

    SPIP 1.9.2e SVN [12735]
    Balise Session Version : 1.0 | stable

    Je n’ai pas ce problème sur tout mes sites qui emploient Balise Session. Est-ce que ça serait à cause d’une incompatibilité avec un autre plugin ? Mais alors lequel ?
    J’employe le Couteau Suisse, Formulaires&Tables, Lecteur Multimédia, Langue préférée par l’internaute, Corbeille, Article PDF et Imprimer document.

    Une idée ?

    S’il y aurait moyen d’éliminer ce bug ça serait trop génial ...

    à bientôt
    Joz

  • Répondre à ce message

    2 septembre 2008 11:16 , par joz

    Grand merci pour ton explication bien compréhensible.
    à bientôt
    joz

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7

Répondre à cet article

Retour en haut de la page

Ça discute par ici