Inscription : afficher un champ non obligatoire du profil

3 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

  • 0

Résolu Inscription : afficher un champ non obligatoire du profil

Message par MlleAlys Mer 10 Aoû 2022 - 19:48

Détails techniques


Version du forum : phpBB2
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Google Chrome
Capture d'écran du problème :
Voir l'image:

Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : https://mllealys2.forumactif.org/

Description du problème

Bonjour ! sunny

Actuellement, les champs affichés lors de l'enregistrement d'un nouvel utilisateur sont les informations d'enregistrement (nom, email, mot de passe), et les champs obligatoires du profil.

Y-a-t-il un moyen d'afficher un champ de profil facultatif lors de l'enregistrement d'un nouvel utilisateur ?

(oui, les suggestions sont des mines d'or de nouvelles idées, et celle là m'intéresse bien ! Razz )

Merci à ceux qui se pencheront sur ma question !
MlleAlys

MlleAlys
Membre actif

Messages : 5800
Inscrit(e) le : 12/09/2012

MlleAlys a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Inscription : afficher un champ non obligatoire du profil

Message par MlleAlys Ven 12 Aoû 2022 - 19:32

Up ^^
MlleAlys

MlleAlys
Membre actif

Messages : 5800
Inscrit(e) le : 12/09/2012

MlleAlys a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Inscription : afficher un champ non obligatoire du profil

Message par Toryudo Dim 14 Aoû 2022 - 15:39

Bonjour !

J'ai tenté la manip suivante sur le champ humeur : j'ai rendu le champ obligatoire, je me suis rendu sur la page d'inscription, j'ai copié le code correspondant au champ. J'ai ensuite remis le champ en non obligatoire, je suis retourné sur la page inscription, j'ai ajouté le champ que j'avais sauvegardé à la main, j'ai tout rempli, mais une fois la validation de l'inscription faite, le champ humeur est resté vide.

A la limite, on peut tenter l'option inverse : mettre le champ obligatoire (tout en retirant l'étoile si visuellement nécessaire), et si rien n'a été rempli par l'utilisateur, alors mettre une valeur par défaut via JavaScript ! Là, ça pourra fonctionner. Mais le code va dépendre du champ, de son id, de ce qu'il doit contenir, etc.
Toryudo

Toryudo
Aidactif
Aidactif

Masculin
Messages : 1372
Inscrit(e) le : 31/03/2020

https://deus-academia.forumactif.com/
Toryudo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Inscription : afficher un champ non obligatoire du profil

Message par MlleAlys Dim 14 Aoû 2022 - 18:03

Arf, dommage =/ Merci pour ta rep !
J'avais pensé à la possibilité de mettre un contenu par défaut qui est déjà dans le panneau, mais j'avoue que ça m'intéressait justement plutôt qu'il puisse rester vide, non affiché dans le profil si non rempli... ^^"
(pour l'étoile par contre je m'en fiche un peu Wink )
Si c'est un code qui dépend de l'id du champ, ça ne m'embête pas si je comprends comment l'adapter ! Disons pour un champ texte basique ^^ (comme par exemple le premier du profil sur mon forum test)
MlleAlys

MlleAlys
Membre actif

Messages : 5800
Inscrit(e) le : 12/09/2012

MlleAlys a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Inscription : afficher un champ non obligatoire du profil

Message par Toryudo Dim 14 Aoû 2022 - 20:23

Admettons, sur mon forum, le champ "Humeur" correspond à l'id : #profile_field_13_-8
Le formulaire form, lui, possède l'id : #form_register

On pourrait les trouver en inspectant l'élément dans le formulaire d'inscription :

Inscription : afficher un champ non obligatoire du profil Image83



Sur l'évènement de validation du formulaire #form_register, on teste la valeur entrée dans le champ #profile_field_13_-8 et si c'est vide, on remplace par un espace, histoire de faire en sorte que ce ne soit pas vide :

Code:
$(function(){
   $('#form_register').submit(function(){
      if ($('#profile_field_13_-8').val() == ''){
         $('#profile_field_13_-8').val(' ');
      }
});

Maintenant, la personne peut s'inscrire même si elle n'a rien écrit dans le champ.
Ensuite, si on veut que ce champ ne soit pas affiché dans le profil s'il n'est pas rempli (si c'est un espace donc), alors on peut rajouter ce genre de code :

Code:
$(function(){
   if ($('#field_id-8 .field_uneditable').html() == ' '){
      $('#field_id-8').remove();
   }
});

Pour trouver cet id #field_id-8, on garde la logique du -8 en fin de champ (humeur était l'id #profile_field_13_-8 qui terminait par -8 donc, et c'est ce -8 que je garde pour trouver l'id #field_id-8 dans la page profil), c'est comme ça qu'il est écrit sur phpBB2 dans la page profil en tout cas.
Bon... ce code empêche aussi la personne de pouvoir éditer ce champ depuis la page profil. Si on veut palier au problème, on compare la valeur de la donnée _userdata["user_id"] (qui contient l'identifiant du membre actuellement connecté) avec le numéro qu'il y a après le /u dans l'url ; si c'est le même numéro, on ne supprime pas le champ même s'il est égal à espace :

Code:
$(function(){
   if (_userdata["user_id"] != window.location.pathname.slice(2)){
      if ($('#field_id-8 .field_uneditable').html() == ' '){
         $('#field_id-8').remove();
      }
   }
});

Normalement, on a déjà une bonne base avec ça !
S'il faut aussi le supprimer dans les messages, ce sera un peu plus pénible, parce qu'il n'y a pas de champ particulier à cibler sur phpBB2 tant qu'on ne modifie par le Template... mais c'est également faisable je pense. Il le faudrait aussi ou ça va ?
Toryudo

Toryudo
Aidactif
Aidactif

Masculin
Messages : 1372
Inscrit(e) le : 31/03/2020

https://deus-academia.forumactif.com/
Toryudo a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Inscription : afficher un champ non obligatoire du profil

Message par MlleAlys Mar 16 Aoû 2022 - 14:13

Merci pour ton aide !
Alors, au départ ça ne fonctionnait pas du tout, et j'ai mis un moment à vérifier plein de trucs dans les options de mon panneau avant de me rendre compte qu'il manquait une fermeture d'accolade dans le premier code ^^"
Du coup, voici le javascript que j'ai mis "sur toutes les pages" :
Code:
$(function(){
  $('#form_register').submit(function(){
    if ($('#profile_field_13_6').val() == ''){
      $('#profile_field_13_6').val(' ');
    }
  });
});
  
$(function(){
  if (_userdata["user_id"] != window.location.pathname.slice(2)){
    if ($('#field_id-6 .field_uneditable').html() == ' '){
      $('#field_id-6').remove();
    }
  }
});


La première partie pour valider le champ à l'inscription fonctionne très bien, ainsi que dans les options du profil, par contre :

- Lorsque le membre édite les champs individuellement depuis l'aperçu de son profil, impossible de laisser le champ vide cette fois. J'ai essayé de refaire un peu le même code pour l'adapter à cet endroit là, mais... sans succès malheureusement...

- le deuxième javascript pour afficher ou non le champ n'a pas l'air de fonctionner : Il est systématiquement affiché. Est-ce que ça pourrait venir de la class ".field_uneditable" que je ne retrouve pas en inspectant ?

- Si on parvient à corriger cette partie pour que cela fonctionne, les administrateurs et modérateurs y auront-ils cependant toujours accès ? Il me semble que non, mais du coup peut-on compléter le code pour que ce soit le cas ?

- Dans l'idéal oui, j'aurais aimé que le comportement soit celui dans champ facultatif y compris à côté des messages... ^^"



ça parait beaucoup de manips et de complications pour "juste" ça, je ne sais pas si ça vaut le coup ? Embarassed
Enfin, dans le sens où je te remercie énormément de ton aide, j'avoue que j'espérais qu'il existerait une astuce plus simple (dommage que la première stratégie d'ajouter le champ à la main dans le formulaire n'ait pas fonctionné !), et l'idée n'étant pas d'une importance capitale, je n'ai pas envie de monopoliser de ton temps (ou celui de quelqu'un d'autre) pour "juste" cette idée là ! Razz

Donc je ne tiens pas forcément à insister sur cette voie, mais bien sûr que si tu as envie de continuer à creuser le truc, je serai ravie de continuer à tester tout ça !

Mais sinon, je vais peut-être me contenter d'une suggestion supplémentaire pour forumactif ! Laughing

En tout cas, merci encore beaucoup de ton aide !
MlleAlys

MlleAlys
Membre actif

Messages : 5800
Inscrit(e) le : 12/09/2012

MlleAlys a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Inscription : afficher un champ non obligatoire du profil

Message par Chacha Lun 22 Aoû 2022 - 9:18

Inscription : afficher un champ non obligatoire du profil UmaslZ4Bonjour,

Attention, cela fait 6 jours que nous n'avons pas de nouvelles concernant votre demande, si vous ne voulez pas voir votre sujet déplacé à la corbeille, merci de poster dans les 24h qui suivent ce message.

Si votre sujet est résolu, merci d'éditer votre premier message et de cocher l'icône « résolu »
Chacha

Chacha
Modéractif
Modéractif

Masculin
Messages : 69443
Inscrit(e) le : 21/08/2010

https://forum.forumactif.com/
Chacha a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Inscription : afficher un champ non obligatoire du profil

Message par MlleAlys Lun 22 Aoû 2022 - 13:00

Oh mince pardon, voilà que j'oublie mes propres sujets ! Embarassed
Je laissais un peu de temps à Toryudo s'il voulait répondre, ou à quelqu'un d'autre qui aurait eu une idée, mais j'ai oublié de remonter...
Mais donc je pense qu'on va pouvoir verrouiller le sujet ^^"
Du coup je ne suis pas sûre qu'on puisse dire que le problème est résolu, mais on a un bon début tout de même avec les codes de Toryudo ? Merci encore ! I love you
MlleAlys

MlleAlys
Membre actif

Messages : 5800
Inscrit(e) le : 12/09/2012

MlleAlys a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Inscription : afficher un champ non obligatoire du profil

Message par Chacha Dim 28 Aoû 2022 - 9:38

Inscription : afficher un champ non obligatoire du profil UmaslZ4Bonjour,

Attention, cela fait 6 jours que nous n'avons pas de nouvelles concernant votre demande, si vous ne voulez pas voir votre sujet déplacé à la corbeille, merci de poster dans les 24h qui suivent ce message.

Si votre sujet est résolu, merci d'éditer votre premier message et de cocher l'icône « résolu »
Chacha

Chacha
Modéractif
Modéractif

Masculin
Messages : 69443
Inscrit(e) le : 21/08/2010

https://forum.forumactif.com/
Chacha a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Inscription : afficher un champ non obligatoire du profil

Message par Chacha Lun 29 Aoû 2022 - 9:20

Inscription : afficher un champ non obligatoire du profil 8djze9qBonjour,

Nous n'avons plus de nouvelle de l'auteur de ce sujet depuis plus de 7 jours. Nous considérons donc ce problème comme résolu ou abandonné. La prochaine fois, merci de nous tenir au courant de l'évolution de votre problème, ou pensez à faire un UP régulièrement !

Ce sujet est archivé afin de ne pas perdre les réponses apportées.
Chacha

Chacha
Modéractif
Modéractif

Masculin
Messages : 69443
Inscrit(e) le : 21/08/2010

https://forum.forumactif.com/
Chacha a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum