SPIP-Contrib

SPIP-Contrib

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

288 Plugins, 197 contribs sur SPIP-Zone, 151 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

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2295 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

  • Lecteur pdf javascript pdf.js

    20 février 2012 – 163 commentaires

    Ce plugin est basé sur le projet pdf.js qui permet une lecture en ligne des pdfs depuis le navigateur. Ce plugin est expérimental et les contributions sur la zone sont les bienvenues. Avantages Open source Ne requiert pas flash et donc (...)

  • SPIP 3, Agenda et FullCalendar

    6 août 2012 – 318 commentaires

    Depuis SPIP 3, l’affichage d’un agenda sous forme de calendrier par jour/semaine/mois à changé. Les filtres |agenda_memo et apparentés sont désormais obsolètes. Il en est de même pour les filtres agendafull_memo et apparentés du plugin Agenda. (...)

  • Mode portail Communiquant pour SoyezCréateurs

    29 septembre 2010 – 28 commentaires

    5e mode d’affichage de la page d’accueil, ce mode se distingue des autres par une animation proposant un fondu/enchaîné des logos des articles à la une. Zonage Configuration Bloc 1 : Zone d’entête Nom du site Slogan si plugin bandeau présent Zone (...)

  • GIS 4

    11 août 2012 – 1420 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 (...)