ACCUEIL >>  Technologies et Territoires >>  Laboratoire du libre >>  SPIP >>  Bouts de codes et développements

 

Bouton de connexion (noisette SPIP)

jeudi 24 janvier 2008 , par Patrick Vincent




- Compatibilité : SPIP 1.9.2+
- License : GNU / GPL

 

Présentation

Voici une noisette pour SPIP permettant d’afficher un bouton de connexion sur le site public, remplacé le cas échéant le nom de la personne connectée.

Lors de la connexion, l’utilisateur est renvoyé vers le site public (et non vers le site privé comme c’est le cas par défaut), ce qui rend ce module utile pour les affichages de contenus publics personnalisés (plugins Accès Restreint ou Acces restreint par groupe).

Mode déconnecté :

Mode connecté :

Première solution : utilisation de la balise #SESSION

- installer et activer le plugin balise_session.
- créer et inclure dans vos squelettes la noisette ci-dessous
- note : à partir de la révision 14824 de SPIP, cette balise est inclue dans le noyau, donc plus besoin de ce plugin, la noisette reste utilisable

Noisette bloc-connexion.html

#CACHE{0}

<div id="bloc-connexion" >
       
        [(#SESSION{login}|?{
        <strong><a href="spip.php?page=auteur&id_auteur=[(#SESSION{id_auteur})]" title="voir mes articles" >[(#SESSION{nom})]</a></strong>
        <a href="spip.php?action=logout&logout=[(#SESSION{login})]&url=spip.php%3Fpage=sommaire" title="se déconnecter" >X</a>
        ,
        <strong><a href="spip.php?page=login&url=spip.php%3Fpage=sommaire" title="se connecter" >Se connecter</a></strong>
        <!--<strong><a href="spip.php?action=inscription&focus=nom_inscription">S'inscrire</a></strong><br>
        <em><a href="spip.php?action=pass">Mot de passe perdu</a></em>-->
        })]       

</div>

Inclusion

A inclure dans votre squelette principal avec : <INCLURE(session.php){fond=bloc-connexion}>

Gestion du cache

Grâce au fichier session.php du plugin SESSION, cet appel permets d’avoir un gestion de cache par session pour la noisette. Les pages appelantes peuvent donc conserver une valeur de cache d’origine non nulle.

Penser à modifier votre feuille de style pour personnaliser l’affichage des boutons.

Deuxième solution : variables globales php

- créer et inclure dans vos squelettes la noisette si-dessous
- note : préférer la première solution pour des raisons de performance (voir cache ci-dessous)

Noisette bloc-connexion.html

#CACHE{0}

<div id="bloc-connexion" >

        [(#REM)Définition des constantes]
        #SET{login,#EVAL{$GLOBALS['auteur_session']['login']}}
        #SET{nom,#EVAL{$GLOBALS['auteur_session']['nom']}}
        #SET{id_auteur,#EVAL{$GLOBALS['auteur_session']['id_auteur']}}

       
        [(#GET{login}|?{
        <strong><a href="spip.php?page=auteur&id_auteur=[(#GET{id_auteur})]" title="voir mes articles" >[(#GET{nom})]</a></strong>
        <a href="spip.php?action=logout&logout=[(#GET{login})]&url=spip.php%3Fpage=sommaire" title="se déconnecter">X</a>
        ,
        <strong><a href="spip.php?page=login&url=spip.php%3Fpage=sommaire" title="se connecter" >Se connecter</a></strong>
        <!--<strong><a href="spip.php?action=inscription&focus=nom_inscription">S'inscrire</a></strong><br>
        <em><a href="spip.php?action=pass">Mot de passe perdu</a></em>-->
        })]       

</div>

Inclusion

A inclure dans votre squelette principal avec : <INCLURE{fond=bloc-connexion}>

Gestion du cache

Jusqu’à la version 1.9.3 de SPIP, pas de gestion de cache native par session. Il faut donc mettre les temps de cache des pages appelantes à zero.

Penser à modifier votre feuille de style pour personnaliser l’affichage des boutons.



Répondre à cet article



Recherche par mots clés