Bonsoir,
Je découvre cette fonction : « Créer un utilisateur lorsque la fiche est validée », bien pratique. Mais je ne comprends pas pourquoi l’espace entre le nom et le prénom est supprimée pour la création de l’utilisateur. Pourtant, c’est bf_titre qui est pris comme identifiant. Pourquoi cette suppression d’espace et comment peut-on l’éviter ?
Merci d’avant pour vos lumières.
C’est une convention ancienne de yeswiki de former des ChatsMot, des mots a 2 bosses, reconnus comme des liens dans les pages wiki.
En l’état les nom d’utilisateur créés appliquent cette convention, meme si ce n’est pas obligatoire.
Et donc, si ce n’est pas obligatoire, comment contourner ça ? Quelle est l’action appelée pour la création d’un user pour cette fonctionnalité ?
ca se passe a la ligne 134 sur https://github.com/YesWiki/yeswiki/blob/doryphore-dev/tools/bazar/fields/UserField.php#L134 il serait possible de dire d’utiliser directement le champ sans appliquer la fonction genere_nom_wiki()
qui enlève les espaces et standardise le nom.
Ceci dit, je ne recommande pas de changer le comportement par défaut dans le code source du cœur (qui sera écrasé a la prochaine mise a jour), il faudrait faire un field custom (cf doc https://github.com/YesWiki/yeswiki/blob/doryphore-dev/docs/en/custom-folder.md#custom-bazar-field) et je pense qu’en laissant les users avec des espaces, il y aura sans doute des effets de bords, sans parler des risques de sécurité a ne pas filtrer la valeur du champs, a vos risques et périls!
Oui, je comprends bien vos réticences. Mais lorsqu’on crée un utilisateur via GererUtilisateurs, le nom qu’on inscrit est respecté tel quel (espaces comprises) et ne semble pas passer par la fonction genere_nom_wiki(). Sinon je ne me serais pas posé la question :-). Par ailleurs, j’avais fait un petit programme php pour intégrer une quarantaine d’utilisateurs en utilisant les primitives de wiki, notamment UserManager->create() et cette fonction accepte le nom passé en paramètre sans le transformer.
Je vais vois pour le custom field.