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>]',