SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 203 visiteurs en ce moment

Accueil > Améliorations de l’espace privé > Champs extra > Une page « Profil » pour le visiteur

Une page « Profil » pour le visiteur

13 avril 2005 – par BoOz, Nikau – commentaires

2 votes

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Nouveau Formulaire : [(#FORMULAIRE_AUTEUR_EDIT)].
Voici un code a adapter pour le rendre le plus générique possible qui permet déjà de proposer une page « Profil » à un visiteur authentifié (inclus dans la contribution spipBB 0.9 CSS).

Cet article fait suite à la description de la mise en place de l’avatar. Vous devriez l’avoir lu avant de poursuivre.

Le profil

Je ne vais pas m’étendre sur le code ici, je vais me contenter de décrire ce que j’ai fait.

Je me suis largement inspiré... Bon, ok, j’ai lâchement “pillé” le code de la page ecrire/auteur_infos.php3 en le simplifiant vu que je n’ai pas besoin de toutes les fonctions présentes dans le code initial.

Tant qu’à proposer une page profile, j’en ai donc profité pour laisser la possibilité au visiteur de changer quelques unes de ses infos, à savoir :
-  possibilité de changer le nom
-  possibilité d’ajouter une bio
-  possibilité d’ajouter un lien vers un site
-  possibilité de se définir un avatar (objet de cette contrib’)
-  possibilité de changer son passe !

Pour ce dernier point, on entre dans une partie qui touche à la sécurité de votre site, donc un peu plus délicat. Je ne suis pas un pro de la sécurité, je me suis donc basé sur ce que propose Spip pour faire cette page, espérant ne pas avoir créer trop de trous.

Par contre, j’empêche toujours la possibilité de changer le login.

Ce sont mes choix, par contre, vous pouvez changer ça comme vous le voulez, c’est commenté dans le code (ligne 229 et 230 de profile.html).

Tiens, puisque l’on en est à parler de sécurité, voici ce que fait la page à ce niveau :
-  si le visiteur n’est pas loggé : la page affiche #login-public, le formulaire qui permet de se logger.
-  on passe la variable id_auteur en paramère dans l’URL, on en a besoin pour la suite (pour la boucle auteur). La page teste par contre si elle correspond à l’id_auteur du visiteur qui est loggé. Si elle ne correspond pas, la page se recharge avec le bon id_auteur en URL. Celà devrait éviter que des p’tits malins éditent les infos d’autres visiteurs.

Donc, si vous êtes loggés et que vous arrivez sur cette page profil, elle vous propose un formulaire qui permet de remplir les différents champs (nom, bio, url de l’avatar et formulaire de changement de mot de passe si vous l’avez autorisé)...
Image du formulaire
Pour que cette page marche, j’ai eu besoin de deux nouvelles fonctions :

-  get_auteur_infos(id_auteur, nom) : cette fonction permet, en transmettant l’id_auteur OU le nom d’un auteur, de récupérer toutes les infos que Spip garde sur cet auteur. Cette fonction est un peu particulière dans le sens où elle n’est pas appelée de façon habituelle. Voir un peu plus bas pour les explications.
-  afficher_avatar(nom, classe) : cette fonction permet d’afficher l’avatar. Elle permet de transmettre la classe CSS avec laquelle vous voulez afficher cette image. Par exemple, dans cette page profile, j’ai créé la classe .image_gauche qui permet de placer l’image en float sur la gauche. Pour afficher l’avatar, il suffit, dans une boucle AUTEUR de placer [(#NOM|afficher_avatar{'image_gauche'})] où je veux afficher l’avatar, ET VOILA ! comme on dit chez les anglais... Vous remarquerez que j’ai contourné la syntaxe habituelle de l’utilisation d’un champ extra. Outre que cette fonction vous permet de créer tout de code de l’image, elle permet surtout de différencier un visiteur, d’un rédacteur/administrateur et d’afficher soit le champ extra, soit le logo. Le simple affichage du champ extra n’est donc pas suffisant.

Mais revenons à notre première fonction get_auteur_infos(id_auteur, nom). Cette fonction n’est pas appelée en tant que filtre Spip, mais bel et bien en tant que fonction php brute. Cela pose un problème. En effet, pour fonctionner, celà implique que le fichier “mes_fonctions.php3” soit présent. Or, il ne l’est que lorsque la page “profile” est calculée par Spip mais pas lorsqu’elle est dans le CACHE !! Le fonctionnement de cette page est donc incompatible avec une mise en cache trop longue. C’est pourquoi j’ai réglé le délai sur 1 dans profile.php3.

Après tout, cette page n’est pas destinée à être mise en cache, donc, notre problème n’en est pas vraiment un. Rappelez-vous simplement que vous devez régler la variable delai de profile.php3 sur un temps très court. Par contre, cela limite l’utilité de la fonction en dehors de celle pour laquelle je l’ai écrite...

En résumé

Pour faire bref, pour que cette page profile fonctionne, il vous faut :
-  profile.php3 et profile.html joint à cette contrib’
-  le fichier ecrire/mes_options.php3 pour définier les champs extras
-  le fichier mes_fonctions.php3 où il faut mettre les deux fonctions nécessaires au fonctionnement de la page.

Ce qui reste à faire

-  J’ai essayé de coder de façon la plus "clean" possible mais les optimisations sont sans doute possible, notamment au niveau du fonctionnement de la fonction get_auteur_infos
-  proposer une galerie d’avatars prédéfinis et l’intégrer aux champs extra
-  Ce qui vous passe par la tête...

Application

La version 0.6 du forum phpBB vs Spip contient l’affichage de l’avatar et la page profil, voir l’article correspondant pour le squelette profile.html et profile.php3.

Dernière modification de cette page le 15 juin 2005

Retour en haut de la page

Vos commentaires

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Escal-V3

    16 février 2012 – 281 commentaires

    Un jeu de squelettes proposant un affichage en 2 ou 3 colonnes avec un large choix de noisettes à insérer ou pas, fortement paramétrable depuis l’espace privé . Présentation A l’instar de sa petite soeur plugin Escal-V2 dont elle reprend toutes (...)

  • GIS 4

    11 août 2012 – 1367 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • FACD

    3 juin 2015 – commentaires

    FACD est l’acronyme de « File d’Attente de Conversion de Documents ». Comme son nom l’indique, il permet à des plugins dont le but est de convertir des documents dans d’autres formats de mettre ses conversions dans une file afin qu’elles soient (...)

  • CleverMail

    20 janvier 2010 – 637 commentaires

    CleverMail est un plugin permettant d’envoyer des lettres d’informations à des abonnés depuis SPIP. Issu au départ d’un développement libre complètement indépendant de SPIP, il a connu une première version pour SPIP 1.9 avant d’être complètement réécris (...)

  • Massicot

    7 octobre 2015 – 74 commentaires

    Recadrez et redimensionnez vos images directement dans l’espace privé de SPIP ! Inspiré par le plugin photospip, ce plugin plus minimaliste permet de recadrer et redimensionner les images dans l’espace privé de SPIP. Une fois le plugin installé (...)

Ça spipe par là