[Réglé] Filtrage des champs utilisateurs

Forum pour discuter des extensions, du processus de validation, la traduction des extensions, pour rechercher des extensions...
Pas de support dans cette section

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

Attention, aucun support n'est fourni dans cette section.
Partager sur FacebookPartager sur TwitterPartager sur Google+

[Réglé] Filtrage des champs utilisateurs

Messagepar Pyanepsion » 26 Avr 2017 à 10:49

Bonjour à tous.

Dans le cadre de mon association professionnelle, nous voudrions uniformiser certains champs du profil de l’utilisateur lors de son enregistrement.
  • Le prénom ne devrait comporter que des lettres accentuées ou pas, des espaces, des traits d’union, et des apostrophes. Marie-Éléonore est autorisé, mais Nonore728 (chiffres) ne l’est pas ni Éléonore_Pazossud (souligné).
  • Le nom devrait être écrit uniquement en lettres majuscules, accentuées ou pas, ou avec des espaces, des traits d’union, et des apostrophes. L’ÉLÉPHANT est autorisé, mais pas L’éléphant (minuscule).
  • Mieux, l’identifiant ne devrait utiliser que le nom et le prénom dans cet ordre.
Merci pour votre aide.
Modifié en dernier par Pyanepsion le 10 Mai 2017 à 19:46, modifié 1 fois.
Pyanepsion
Maître-posteur
Maître-posteur
 
Messages: 433
Enregistré le: 24 Mai 2009 à 09:30
Localisation: Clermont-Ferrand

Re: Filtrage des champs utilisateurs

Messagepar galixte » 27 Avr 2017 à 05:32

Salut,

qu’est-ce que tu te compliques la vie tout de même. :)

Malheureusement, je ne connais pas d’extension permettant de se rapprocher de ton objectif.

Pour le champ du nom d’utilisateur cela va nécessiter des modifications dans le type de champ propre au nom d’utilisateur dans la base de données. Par sûr que ce soit une bonne idée vis à vis des futures mises à jour de phpBB, ou alors il te faudra rétablir ce champ avant chaque mise à jour puis réappliquer les changements après chacune d’elles, un peu lourd comme démarche à la longue.

Si tu ne penses pas au nom d’utilisateur mais à deux champs personnalisés distincts, alors tu créés deux nouveaux champs personnalisés auxquels tu peux choisir différent types, celui nommé « champ texte simple » me parait le plus proche de ta demande. Ensuite, depuis sa page de configuration, tout en bas à droite tu verras un bouton nommé : « Options particulières du type de champs », l’option « Validation du champ » accessible sur la page suivante te permettra de choisir le type de contenu texte, parmi un choix que voici.

si tu veux mon avis personnel, je te dirais que c’est abusé d’obliger les utilisateurs à utiliser leurs nom et prénom pour identifiant. Chacun à droit à sa part d’anonymat sur le Web, je ne pense pas que l’ensemble de tes visiteurs accepteraient une telle obligation.
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 9543
Enregistré le: 08 Mar 2004 à 02:40
Localisation: Sud de la France.

Re: Filtrage des champs utilisateurs

Messagepar Pyanepsion » 27 Avr 2017 à 13:35

galixte a écrit:C’est abusé d’obliger les utilisateurs à utiliser leurs nom et prénom pour identifiant.

Il s’agit ici d’une association professionnelle dont tous les membres sont régis par le statut libéral. Elle a donc pour obligation légale de permettre l’identification de ses membres. Nous dispositions alors de 2 possibilités d’identification :
– le nom et le prénom du prestataire ;
– le numéro SIRET ;
– nous tolérons aussi le nom de l’entreprise.
Une partie du forum est ouverte en écriture au public. Il s’agit alors soit de prestataires qui veulent faire leur pub ou qui veulent intégrer l’association, soit, rarement, de clients. Le prestataire est nécessairement identifié, quant au client, il peut tout à fait utiliser un pseudonyme du moment que celui-ci respecte le format demandé : LA BICHE Jean et son cousin d’Amérique DOES John sont recevables. Cette contrainte permet par ailleurs de vérifier que nous n’avons pas affaire à un spambot ou à un robot humain.
L’objectif de ces contraintes est en effet aussi de réduire le travail du webmestre en automatisant l’inscription.

galixte a écrit:Options particulières du type de champ

Les choix proposés ne répondent pas à la question d’où la recherche d’une extension.
Pyanepsion
Maître-posteur
Maître-posteur
 
Messages: 433
Enregistré le: 24 Mai 2009 à 09:30
Localisation: Clermont-Ferrand

Re: Filtrage des champs utilisateurs

Messagepar Pyanepsion » 10 Mai 2017 à 19:46

Un petit développement a été nécessaire.
Pyanepsion
Maître-posteur
Maître-posteur
 
Messages: 433
Enregistré le: 24 Mai 2009 à 09:30
Localisation: Clermont-Ferrand

Re: Filtrage des champs utilisateurs

Messagepar galixte » 10 Mai 2017 à 23:34

N'hésite pas à partager si ton association et ton développeur sont d'accord. ;)

bonne continuation !
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 9543
Enregistré le: 08 Mar 2004 à 02:40
Localisation: Sud de la France.

Re: Filtrage des champs utilisateurs

Messagepar Pyanepsion » 19 Mai 2017 à 15:19

Il s’agit d’un développement de Jean-Marie CLÉMENT.
J’indique ici les lignes précédentes de chaque fichier modifié.
Les lignes modifiées sont signalées par la remarque JMC.
Cette modification fonctionne sur phpBB en version 3.2 sur laquelle ont été ajouté les champs Nom, Prénom, spécialité a, spécialité b, téléphone.
L’identifiant est comparé à Nom et Prénom.
Nom doit être en majuscules.
Les spécialités sont choisies dans une liste.
Téléphone n’accepte que les caractères de la norme internationale.

/forum/phpbb/profilefields/type/type_string_common.php
Code: Tout sélectionner
	protected $validation_options = array(
		'CHARS_ANY'			=> '.*',
		'NUMBERS_ONLY'		=> '[0-9]+',
		'ALPHA_ONLY'		=> '[a-zA-Z0-9]+',
		'ALPHA_UNDERSCORE'	=> '[\w]+',
		'ALPHA_DOTS'        => '[a-zA-Z0-9.]+',
		'ALPHA_SPACERS'		=> '[\w\x20+\-\[\]]+',
		'ALPHA_PUNCTUATION' => '[a-zA-Z][\w\.,\-]+',
		'LETTER_NUM_ONLY'			=> '[\p{Lu}\p{Ll}0-9]+',
		'LETTER_NUM_UNDERSCORE'		=> '[\p{Lu}\p{Ll}0-9_]+',
		'LETTER_NUM_DOTS'			=> '[\p{Lu}\p{Ll}0-9.]+',
		'LETTER_NUM_SPACERS'		=> '[\p{Lu}\p{Ll}0-9\x20_+\-\[\]]+',
		'LETTER_NUM_PUNCTUATION'	=> '[\p{Lu}\p{Ll}][\p{Lu}\p{Ll}0-9.,\-_]+',
        'JMC_FRENCH_PHONE_NUMBERS'  => '[0-9\x20+]+', // JM mai 2017
        'JMC_ALPHA_UPPER_ONLY'      => '[A-ZÂÊÎÔÛÄËÏÖÜÀÆÇÉÈŒÙ\-\\\'\x20\\\\’]+',  // JM mai 2017
        'JMC_ALPHA_SPACERS'         => '[a-zàâçéèêëîïôûùüÿñæœA-ZÂÊÎÔÛÄËÏÖÜÀÆÇÉÈŒÙ\-\\\'\x20\\\\’]+',  // JM mai 2017


/forum/includes/ucp/ucp_profile.php
Code: Tout sélectionner
					// validate custom profile fields
					$cp->submit_cp_field('profile', $user->get_iso_lang_id(), $cp_data, $cp_error);

					// début JM mai 2017
					// Controle username = NOM prénom
					if (!sizeof($error)) {
						// toutes les premières lettres en majuscules
						$cp_data['pf_prenom'] = str_replace(' | ','-',mb_convert_case(str_replace('-',' | ',$cp_data['pf_prenom']),MB_CASE_TITLE,'UTF-8'));
						// nom de famille en majuscules
						if ($cp_data['pf_nom']!==mb_strtoupper($cp_data['pf_nom'],'UTF-8')) {
							$error[] = $user->lang['JMC_INVALID_NOM'];
						}
						// le nom utilisé doit correspondre à nom + espace + prenom(s)
						if ($user->data['username'] !== $cp_data['pf_nom'] . ' ' . $cp_data['pf_prenom']) {
							$error[] = $user->lang['JMC_INVALID_USERNAME'];
							$error[] = $user->lang['JMC_EXEMPLE'] . mb_strtoupper($cp_data['pf_nom'],'UTF-8') . ' ' . $cp_data['pf_prenom'];
						}
					}
					// la spécialisation a ne peut être égale à la specialisation b
					if (($cp_data['pf_specialisation_a']==$cp_data['pf_specialisation_b']) && $cp_data['pf_specialisation_b']!=1) {
						$cp_data['pf_specialisation_b']=1;
					} elseif ($cp_data['pf_specialisation_a']==1 && $cp_data['pf_specialisation_b']!=1) {
						$cp_data['pf_specialisation_a']=$cp_data['pf_specialisation_b'];
						$cp_data['pf_specialisation_b']=1;
					}
					// fin JM mai 2017


/forum/includes/ucp/ucp_register.php
Code: Tout sélectionner
			$cp->submit_cp_field('register', $user->get_iso_lang_id(), $cp_data, $error);

			// début JM mai 2017
			// Controle username = NOM prénom
			if (!sizeof($error)) {
				
				// toutes les premières lettres en majuscules
				$cp_data['pf_prenom'] = str_replace(' | ','-',mb_convert_case(str_replace('-',' | ',$cp_data['pf_prenom']),MB_CASE_TITLE,'UTF-8'));
				
				// nom de famille en majuscules
				if ($cp_data['pf_nom']!==mb_strtoupper($cp_data['pf_nom'],'UTF-8')) {
					$error[] = $user->lang['JMC_INVALID_NOM'];
				}
				// le non util doit correspondre à nom + espace + prénoms
				if ($data['username'] !== $cp_data['pf_nom'] . ' ' . $cp_data['pf_prenom']) {
					$error[] = $user->lang['JMC_INVALID_USERNAME'];
					$error[] = $user->lang['JMC_EXEMPLE'] . mb_strtoupper($cp_data['pf_nom'],'UTF-8') . ' ' . $cp_data['pf_prenom'];
				}
			}
			// la spécialisation a ne peut être égale à la specialisation b
			if (($cp_data['pf_specialisation_a']==$cp_data['pf_specialisation_b']) && $cp_data['pf_specialisation_b']!=1) {
				$cp_data['pf_specialisation_b']=1;
			} elseif ($cp_data['pf_specialisation_a']==1 && $cp_data['pf_specialisation_b']!=1) {
				$cp_data['pf_specialisation_a']=$cp_data['pf_specialisation_b'];
				$cp_data['pf_specialisation_b']=1;
			}
			// fin JM mai 2017


/forum/language/fr/ucp.php
Code: Tout sélectionner
	'FIELD_INVALID_CHARS_LETTER_NUM_UNDERSCORE'	=> 'Le champ %s comporte des caractères incorrects. Seuls les lettres, les chiffres ou _ sont autorisés.',
    'FIELD_INVALID_CHARS_JMC_ALPHA_UPPER_ONLY'  => 'Le champ %s comporte des caractères incorrects. Seuls les lettres majuscules, apostrophes, traits d’union et espaces sont autorisés.',  // JM mai 2017
    'FIELD_INVALID_CHARS_JMC_FRENCH_PHONE_NUMBERS'	=> 'Le champ %s comporte des caractères incorrects. Seuls des chiffres, + et espaces sont autorisés.', // JM mai 2017
	'FIELD_INVALID_CHARS_JMC_ALPHA_SPACERS'  => 'Le champ %s comporte des caractères incorrects. Seuls les lettres, apostrophes, traits d’union et espaces sont autorisés.',  // JM mai 2017
	'FIELD_INVALID_DATE'	=> 'La date du champ %s est incorrecte.',

Code: Tout sélectionner
	'ITEMS_REQUIRED'	=> 'Les éléments marqués par un astérisque (<span style="color:red;">*</span>) sont des champs obligatoires du profil et doivent être remplis.',
	'JMC_INVALID_USERNAME' => 'Le nom d’utilisateur doit correspondre à NOM Prénom.', // JM mai 2017
	'JMC_INVALID_NOM' => 'Le nom doit être écrit en majuscules.', // JM mai 2017
	'JMC_EXEMPLE'   => 'Exemple : ', // JM mai 2017
	'JOIN_SELECTED'	=> 'Adhérer au groupe sélectionné'


/forum/language/fr/acp/profile.php
Code: Tout sélectionner
	'ISO_LANGUAGE'	=> 'Langue [%s]',
	'JMC_ALPHA_UPPER_ONLY'  => 'Lettres majuscules, apostrophes, traits d’union et espaces',  // JM mai 2017
	'JMC_FRENCH_PHONE_NUMBERS'	=> 'Numéro de téléphone français : chiffres, + et espaces', // JM mai 2017
	'JMC_ALPHA_SPACERS'  => 'Lettres françaises, apostrophes, traits d’union et espaces',  // JM mai 2017  
	'LANG_SPECIFIC_OPTIONS'	=> 'Options particulières à la langue [<strong>%s</strong>]',
Pyanepsion
Maître-posteur
Maître-posteur
 
Messages: 433
Enregistré le: 24 Mai 2009 à 09:30
Localisation: Clermont-Ferrand

Re: Filtrage des champs utilisateurs

Messagepar galixte » 19 Mai 2017 à 15:39

Merci pour ton partage ! :)
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 9543
Enregistré le: 08 Mar 2004 à 02:40
Localisation: Sud de la France.


Retourner vers Discussions et recherches d'extensions

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité