SPIP-Contrib

SPIP-Contrib

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

288 Plugins, 197 contribs sur SPIP-Zone, 189 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 ?
  • [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 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

  • Utilisez le framework Foundation dans vos squelettes !

    13 août 2013 – 94 commentaires

    Foundation est un framework CSS et Javascript très complet pour réaliser des sites sur une grille propre et homogène. Mais surtout, il permet de rendre un site responsive très facilement ! Ce plugin ajoute le framework Foundation sur l’espace (...)

  • Champs Extras 3

    16 janvier 2012 – 598 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • LinkCheck : vérificateur de liens

    13 février 2015 – 116 commentaires

    Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en (...)

  • Le plugin ZotSpip

    28 mai 2012 – 145 commentaires

    Synchronise Spip avec une bibliothèque (personnelle ou partagée) de références bibliographiques Zotero. Utilisez Zotero pour gérer / importer / rédiger vos références bibliographiques, puis incorporez vos références bibliographiques dans votre Spip avec (...)

  • Article PDF

    9 juin 2007 – 348 commentaires

    Présentation d’un plugin fournissant une version PDF de l’article en cours

Ça spipe par là