SPIP - Contrib

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



Accueil du site > Auteurs et Authentification > Authentification

Balise #SESSION

jeudi 28 juin 2007, par James. Dernier ajout dimanche 4 novembre 2007


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


mise à jour 25-8-07 : Cette balise est désormais incorporée au code de SPIP, cf. http://zone.spip.org/trac/spip-zone...

Installation

  • 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


Répondre à cet article

  • Balise #SESSION et les autres auteurs connectés

    12 octobre 2007 12:13, par Cédric Couvrat

    Bonjour,

    Comment afficher la liste des auteurs (et/ou administrateurs) connectés au site, comme on peut le voir dans l’espace privé ("actuellement en ligne).

    Merci

    Répondre à ce message

    • Balise #SESSION et les autres auteurs connectés 12 octobre 2007 12:44, par James

      Ce n’est pas le rôle de cette balise, qui par définition, n’affiche que du contenu lié au seul visiteur connecté et identifié. Il n’y a, à ma connaissance, pas de contribution récente et documentée sur ce sujet, mais il est possible que certains squelettes, notamment pour des forums, intègrent ce genre de fonctionnalité. Il serait bon dans ce cas, de la sortir de leur contexte pour en faire une contribution autonome et réutilisable.

      Répondre à ce message

    Retour au début des forums

  • Balise #SESSION et les balise de langue

    11 octobre 2007 16:58, par artisan-multimedia

    Bonjour,

    Lorsque je conditionne l’affichae de texte en testant la balise session, j’ai un léger souci : c’est la balise langue qui s’affiche, et pas sa traduction : c’est bien dommage.

    Un exemple :

    [(#SESSION{id_auteur}|?{
                     '<a href="spip.php?page=spip_login" class="petit" alt="Proposez un nouvel article"><:proposer_article:></a>&nbsp;|&nbsp;

    me laisse <:proposer_article :> au lieu de sa traduction. Je pense que ce serait une bonne correction pour ce plugin qui, par ailleurs est très bien :).

    Répondre à ce message

    • Balise #SESSION et les balise de langue 11 octobre 2007 17:08, par James

      La bonne écriture :

      [<!-- cet(#SESSION{id_auteur}|?{' espace '})est accessible aux seuls visiteurs authentifiés ;)-->

      <a href="#URL_PAGE{truc}"><:texte:></a>

      ]

      Il ne faut pas (enfin, on ne peut pas) mettre du code SPIP dans les paramètres du filtre conditionnel.

      Répondre à ce message

    Retour au début des forums

  • Balise #SESSION incluse dans SPIP

    25 août 2007 14:11, par James

    Cette balise sera incluse dans la prochaine version de SPIP. Lors de cette mise à jour, vous n’aurez qu’à retirer le code (session.php) de vos squelettes, dans les paramètres des <INCLURE ... >

    Répondre à ce message

    Retour au début des forums

  • Une petite question en passant...

    J’ai voulu installer le plugin en décompressant le fichier comme c’est indiqué à la racine du site et à ce moment là il n’apparait pas dans le backoffice dans la liste des plugins disponibles, impossible donc de l’installer.

    Je viens donc de déplacer le répertoire balise-session dans le répertoire plugins et ce coup ci, il apparait et je peux donc l’installer.

    Est-ce que c’est normal (j’ai pas vérifié plus loin si ça fonctionnait) ? Et si c’est le cas, ça serait peut être pas mal de corriger l’indication...

    Répondre à ce message

    Retour au début des forums

  • Balise #SESSION

    17 août 2007 00:52, par zerocool

    Salut j’utilise ce plugin pour faire un espace membre ou les membres puissent modifier leur informations depuis le site grace au crayon, j’ai creer 2 pages une page auteur.html que tout le monde peut visiter mais personne ne peut modifier et une page editer-auteur.html ou seul l’auteur peut modifier ses informations mais tout le monde peut visiter cette page donc j’aimerai que seul la personne concerné puisse la voir est ce possible ?

    Répondre à ce message

    • Balise #SESSION 18 août 2007 10:47, par James

      En mettant les crayons dans la page auteur.html, tu règles le problème, non ?

      Répondre à ce message

      • Balise #SESSION 18 août 2007 10:52, par zerocool

        seul la personne concerner peut modifier ses informations bien sur mais je voudrais que seul les admin et l’auteur puisse avoir acces a cette page car il y a des informations confidentielle comme l’adresse de l’auteur...

        Merci

        Répondre à ce message

        • Balise #SESSION 18 août 2007 11:21, par James

          cette balise n’est pas conçu pour ça. Et elle n’a pas vocation à le devenir. Tu pourrais par contre la combiner à une autre solution à choisir parmi le vaste éventail des trucs qui tournent autour de la restriction d’accès, ce genre de chose...

          Je ne les connais pas toutes, et je crois qu’il y a une balise #AUTORISER dans la version de dev de SPIP qui pourrait servir à ça si tu la personnalises :

          [(#AUTORISER{modifier, auteur})

          <div class="#EDIT{toto}">champ toto visible par l'admin ou le membre</div>

          ]

           ?

          Répondre à ce message

    Retour au début des forums

  • Balise #SESSION & inscription2

    8 août 2007 11:57, par adrien

    Bonjour,

    J’utilise le plugin Inscription2, et je souhaiterai savoir comment faire pour afficher les informations supplémentaires des membres ( qui se situent dans la table spip_auteurs_elargis ) via l’utilisation de la balise #SESSIONprenom par exemple.

    A un moment ça fonctionnait c’était cool, mais plus maintenant... :s

    Pourriez-vous m’aider svp ?

    Merci d’avance

    Adrien

    Répondre à ce message

    • Balise #SESSION & inscription2 8 août 2007 12:27, par James

      « A un moment ça fonctionnait » c’est pas très précis :)

      Si le plugin en question ajoute un champ « prenom » dans le tableau $auteur_session, alors tout va bien. S’il ne le fait pas (ou plus), je n’y peux rien ! :)

      Répondre à ce message

      • Balise #SESSION & inscription2 8 août 2007 12:42

        Une petite recherche me donne :

        l’ajout des données dans le tableau associatif a été :

        • retiré le 22/07/2007 à 23:39:27
        • remis le 24/07/2007 à 21:49:05
        • retiré à nouveau le 24/07/2007 à 22:05:22

        Faut demander aux auteurs du plugin ce qui les motive, ils ont surement de bonnes raisons. :)

        Répondre à ce message

        • Balise #SESSION & inscription2 8 août 2007 12:56, par adrien

          Ok merci beaucoup grâce à vos information j’ai pu réactiver cette fonction moi même...

          Je verrai par la suite si cela produit des effets indésirables, mais je ne pense pas trop...

          Merci beaucoup

          Adrien

          Répondre à ce message

          • Balise #SESSION & inscription2 12 août 2007 00:10, par kent1

            Désolé adrien ...

            James m’avit prévenu du message mais je ne l’avais pas vu ...

            En fait l’ajout dans le tableau de auteurs_session fait bugger (au moins en 1.9.3) l’ajout "normal" des auteurs dans spip par le bouton "ajouter un auteur" classique...

            Les auteurs créés à la suite de l’installation d’inscription2 n’avaient plus la possibilité de se délogguer...

            Voila pourquoi j’avais commenté cette ligne ...

            Si tu peux apporter des infos supplémentaires par rapport à cela ce serait cool

            Répondre à ce message

    Retour au début des forums

  • Espace privé en vrac

    7 août 2007 10:47, par Julien

    Bonjour,

    Je viens de tester le plugin (version svn) sur une installation locale de SPIP (MAMP, php 5, MySQL 5, SPIP 1.9.2svn), et il me plante l’espace privée.

    Il ne permet plus le chargement de jQuery et engendre des erreurs sur le script "presentation.js" de la dist, le non chargement des css ...

    Si je désactive le plugin tout fonctionne à nouveau correctement.

    C’est gênant car je voulais tester le squelette Multi-saisons qui a justement une dépendance sur ce plugin.

    Répondre à ce message

    • Espace privé en vrac 7 août 2007 12:05, par Julien

      J’ai un peu cherché via svn depuis quand le plugin ne fonctionne plus :

      C’est le changement 13698 qui casse tout :-(

      Répondre à ce message

      • Espace privé en vrac 7 août 2007 12:09, par James

        Salut,

        La version de dev casse tout en effet et cet article ne concerne pas la version de dev.

        Le dernier changeset stable est le 13161 (le zip ci-dessus est gelé à cette revision)

        voir ce mail http://archives.rezo.net/spip-zone....

        Pour avancer sur la version de dev, c’est plutôt sur la liste spip-zone qu’il faut causer :)

        Amicalement,

        Répondre à ce message

        • Espace privé en vrac 7 août 2007 12:50, par Julien

          OK, c’est que je passe toujours par svn pour avoir les version, ça me permet d’être plus facilement à jour lors de l’utilisation de nombreux plugins (près de 10).

          Et ce que j’ai pas trop compris c’est que le plugin est présent dans la section "dev" et dans la section "stable" en révisions différentes.

          Merci pour ces précisions !

          Répondre à ce message

          • versions de la balise sur la zone 8 août 2007 12:00, par James

            Oui, certes, c’est vrai, c’était un peu le bazar :)

            J’ai fait du ménage : dans « stable », ça ne bougera plus intempestivement, dans « dev », on refait la fonctionalité.

            Répondre à ce message

    Retour au début des forums

  • Balise #SESSION

    20 juillet 2007 15:15, par zerocool

    rebonjour

    est ce qu’avec ce plugin on peut creer un genre d’espace membre comme il y a beaucoup sur les sites c’est a dire que la personne (visiteur) identifié (connecté) peut aller sur une page pour y modifier ses infos et les autres visiteurs, redacteurs... peuvent voir les infos de n’importe qui sans possibilité de les modifier ?

    Merci

    Répondre à ce message

    Retour au début des forums

0 | 25



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et fonctionnement SPIP-Contrib | SPIP | L'autre.net