Informer à la première connexion

Un mini plugin pour ajouter un message lors de la toute première connexion au site, juste après avoir confirmé son inscription.

Le plugin ajoute un message tout au début du <body>, avec un identifiant de bloc #informer_premiere_connexion.

Il y a une phrase par défaut, mais le plugin comporte aussi une page de configuration pour modifier le texte dans l’interface d’admin (et donc possiblement avec des paragraphes, des liens, etc).

Lorsqu’on a besoin d’afficher des informations plus compliquées que du contenu classique, par exemple avec des données de l’utilisateur, des boucles, ou autre, le bloc entier est défini dans un squelette unique facile à surcharger : inclure/informer_premiere_connexion.html.

Si javascript est présent, un lien « Fermer » est ajouté en fin de message, et permet de le faire disparaître. Une fois qu’il a été affiché, il ne s’affiche normalement plus jamais.

Le plugin ajoute aussi en début de <head> quelques styles très minimaux pour être sûr que ce soit lisible. À chacun de surcharger ou compléter ces styles dans son propre thème, afin de coller au graphisme du site.

Discussion

2 discussions

  • 8

    Sauf erreur, tu perds tout côté serveur à la fermeture de la session. Un cookie quasi permanent côté client semble être la solution la plus simple :

    and !session_get('informer_premiere_connexion')
    // on vérifie que le cookie dont le nom contient l'id de l'auteur n'existe pas
    and !isset($_COOKIE['spip_informer_premiere_connexion_'.session_get('id_auteur')])

    et

     
    // Maintenant on peut affirmer que le message a été lu
    session_set('informer_premiere_connexion', 'oui');
    // on crée un cookie dont le nom contient l'id de l'auteur
    include_spip('inc/cookie');
    spip_setcookie('spip_informer_premiere_connexion_'.session_get('id_auteur'), 'oui',time() + 365 * 24 * 3600);

    Bien entendu, si l’utilisateur supprime tout ses cookies, on pert l’information.
    Je vais suivre ton conseil concernant la création d’un compte ...

    • Je répète : « en_ligne » est un champ permanent gardé dans la table des utilisateurs. Il ne vaut « 0000… » que la toute première fois. Les connexions suivantes, ce champ est rempli d’une date. Or le message ne s’affiche que lorsque cette date est à zéro.

    • Merci Rasta, mais tous mes utilisateurs ont ce champs à 000... dans la table ;(
      Je tente de trouver d’où provient ce problème.

    • Hihi, oui, c’est effectivement plutôt là le problème. :D

      Ce champ n’est pas censé être à zéro sauf la toute première fois. Un plugin qui interfère avec cette valeur ?

    • Je rencontre ce problème sur une autre plate-forme SPIP 3.0.16 [21266]. A la connexion des admins la valeur du champ change mais retombe à zéro à la déconnexion, pour les visiteurs c’est pire encore : toujours à zéro même pendant la connexion. La désactivation des plugins n’a rien résolu ;(
      Je repars sur un SPIP tout neuf pour quelques tests complémentaires...

    • Bonjour à tous,
      Après plusieurs tests et recherches, j’ai trouvé ceci :
      « les visiteurs ne sont pas mis à jour normalement (en_ligne)(seulement quand on visite la partie privée) »
      [Extrait de https://www.mail-archive.com/spip@rezo.net/msg33105.html]
      C’est bien le cas sur mes plateformes SPIP. Pour résumer, à la connexion le champs « en_ligne » est renseigné par la valeur de la date et l’heure de la connexion mais à la condition d’entrer sur la partie privée, puis retour à zéro si déconnexion ... En cas de fermeture de la session du navigateur sans déconnexion, la valeur persiste dans la table... jusqu’à la prochaine déconnexion où la valeur retombe à zéro.

    • As-tu toujours ce problème sur des versions récentes de SPIP ?

      Il faudrait peut-être rapporter ce problème sur la liste spip-dev du noyau et/ou dans un ticket pour mémoire.

    • Oui ! Cela ne semble pas avoir évolué. Je viens de contrôler avec SPIP 3.0.19 [22089] et pour les auteurs avec le status « 6forum », le champs « en_ligne » reste à « 0000-00-00 00:00:00 ».

    • J’ai envoyé un mail sur la liste spip-dev + un ticket :
      https://core.spip.net/issues/3480

    Répondre à ce message

  • 3

    Bonjour,
    Voici un petit retour :
    -  coquille dans le css inclus dans informerpremiereconnexion_pipelines.php « coor » au lieu de « color »,
    -  session_set(’informer_premiere_connexion’, ’oui’) est perdu avec une déconnexion, et donc le message s’affiche à chaque connexion et non à la première connexion.
    On peut améliorer le plugin peut-être avec un cookie persistant ?

    • Merci pour ce retour, je tenterais de prendre le temps de corriger ces erreurs d’ici peu. Sinon, tu peux aussi demander un compte sur le SVN de spip-zone (si tu n’en as pas déjà) et corriger toi-même. :)

    • Pour la session, je ne comprends pas trop par contre, car le test réel est qu’il faut :
      session_get('en_ligne') == '0000-00-00 00:00:00'
      ET
      !session_get('informer_premiere_connexion')

      Si tu t’es déjà connecté une fois, et que tu te déconnectes, tu perds effectivement le « informer_premiere_connexion » dans la session MAIS ta valeur de « en_ligne » ne sera plus la même à la connexion suivante !

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom