Bug PHPBoost autocomplete
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Il y a un bug avec la fonction formulaire autocomplete de PHPBoost
Je parle de cette fonction
Code PHP :
$fieldset->add_field(new FormFieldAjaxUserAutoComplete('username', $this->lang['chat.form.username'], '', array('required' => true) ));
Lorsqu'on tape un peu le pseudo et qu'on appui sur la flèche du bas, le pseudo dans le formulaire est remplacé par un code html que voilà par exemple pour mon pseudo:
Et de plus lorsqu'on clique sur le pseudo proposé ça met bien le pseudo dedans, mais ça suggère de nouveau le pseudo alors que c'est censé se fermé si on clique sur le pseudo ?
Édité par Myster Le 28/11/2019 à 15h47
j1.seth Membre non connecté
- Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
- Chef de Projet
- Equipe Développement
En attendant voici la correction à appliquer (2ème fichier uniquement si tu ne souhaites pas corriger le bugtracker) :
https://github.com/PHPBoost/PHPBoost/commit/d001868c402355b9e828dae323d4991228c20e7b#diff-a9c855095ae560e02a70b4e6682d91de
Au passage il te manque la contrainte suivante dans ton champ (regarde dans l'exemple de la correction du bugtracker) :
Code PHP :
array(new FormFieldConstraintUserExist())
Edit :
Ah si j'avais corrigé, c'est disponible depuis la 5.2.3
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Version du noyau
5.2.3
Et d'accord je vais mettre la contrainte
Même en remplacant par le code (même s'il est identique du coup) y'a toujours l'erreur, ça affiche un lien si on appui sur la flèche du bas
Édité par Myster Le 28/11/2019 à 18h25
j1.seth Membre non connecté
- Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
- Chef de Projet
- Equipe Développement
Il faut que je regarde plus en détail du coup j'ai pas pris en compte je fais à la souris.
j1.seth Membre non connecté
- Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
- Chef de Projet
- Equipe Développement
Code PHP :
'display_html_in_suggestions' => false
Elle est à true par défaut pour ce champ.
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
j1.seth Membre non connecté
- Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
- Chef de Projet
- Equipe Développement
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
J'ai une petite question d'ailleurs, existe t-il une contrainte qui recherche dans la bdd si un champ existe, par exemple j'ai un formulaire avec un champ de type texte, pour la création d'une news (c'est un exemple) j'aimerais que l'utilisateur ne puisse pas mettre le titre "Blabla" s'il est présent dans la bdd
Merci :]
Edit, J'ai résolu le problème, j'ai ajouter une nouvelle contrainte (FormFieldConstraintChannelNotExist) et le js
Code JAVASCRIPT :
function ChannelNotExist(e, r) { var t = HTMLForms.getField(e); if (t) { var a = t.getValue(), i = ""; return "" != a && jQuery.ajax({ url: PATH_TO_ROOT + "/kernel/framework/ajax/user_xmlhttprequest.php", type: "post", async: !1, data: { name: a, token: TOKEN }, success: function(e) { 1 != e && (i = r) } }), i } return "" }
Et le userxhtml
Code PHP :
Cependant j'ai une question, vu qu'on fait un count dans ce fichier, à quoi ça sert de faire une requête dans le fichier de la contrainte ? Vu que le count dis si y'a ou pas la valeur présente dans la bdd ? Perso j'en ai pas mis et ça fonctionne mais si c'est présent dans les autres fichiers genre userexist, c'est que ça dois servir à quelque chose ?
Édité par Myster Le 30/11/2019 à 14h49
j1.seth Membre non connecté
- Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
- Chef de Projet
- Equipe Développement
Je ne sais plus exactement pourquoi il y a le count aux 2 endroits il faudrait que je me replonge dans ce code pour te dire mais si ça marche pour toi c'est tout bon
j1.seth
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
J'ai compris, le premier c'est pour l'ajax pour éviter que ça recharge la page et le second c'est pour la validation formulaire lorsqu'on appui sur "Envoyer"
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie