From 2d1de155fdbf8ec85e25cfc38030feec7db8ccfa Mon Sep 17 00:00:00 2001 From: Eric Lupinacci Date: Wed, 26 May 2021 08:56:44 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20d'un=20champ=20de=20formulaire=20pour?= =?UTF-8?q?=20expliquer=20la=20raison=20de=20la=20demande=20(=C3=A9viter?= =?UTF-8?q?=20aussi=20les=20spams=20ou=20les=20abus)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/contrib_declarations.php | 2 ++ contrib_administrations.php | 5 +++++ formulaires/contribution_inscrire.html | 4 ++++ formulaires/contribution_inscrire.php | 9 ++++++++- lang/contrib_fr.php | 3 +++ paquet.xml | 2 +- 6 files changed, 23 insertions(+), 2 deletions(-) diff --git a/base/contrib_declarations.php b/base/contrib_declarations.php index a214394..d67a8b3 100755 --- a/base/contrib_declarations.php +++ b/base/contrib_declarations.php @@ -110,6 +110,7 @@ function contrib_declarer_tables_interfaces($interfaces) { // Les traitements // - on desérialise les tableaux $interface['table_des_traitements']['PARAMETRES']['inscriptions'] = 'unserialize(%s)'; + $interface['table_des_traitements']['DESCRIPTIF']['inscriptions'] = 'typo(%s)'; return $interfaces; } @@ -134,6 +135,7 @@ function contrib_declarer_tables_objets_sql($tables) { 'id_inscription' => 'bigint(21) NOT NULL', 'username' => 'varchar(100) DEFAULT "" NOT NULL', 'email' => 'tinytext DEFAULT "" NOT NULL', + 'descriptif' => 'tinytext DEFAULT "" NOT NULL', 'charte_approuvee' => 'varchar(3) DEFAULT "non" NOT NULL', 'parametres' => 'text DEFAULT "" NOT NULL', 'topic_id' => 'bigint(21) DEFAULT 0 NOT NULL', diff --git a/contrib_administrations.php b/contrib_administrations.php index 95e5c1f..75a4faf 100644 --- a/contrib_administrations.php +++ b/contrib_administrations.php @@ -30,6 +30,11 @@ function contrib_upgrade($nom_meta_base_version, $version_cible) { array('sql_alter', 'TABLE spip_inscriptions ADD topic_id bigint(21) DEFAULT 0 NOT NULL AFTER parametres') ); + // Ajout de la tables des demandes d'inscription + $maj['4'] = array( + array('sql_alter', 'TABLE spip_inscriptions ADD descriptif tinytext DEFAULT "" NOT NULL AFTER email') + ); + include_spip('base/upgrade'); maj_plugin($nom_meta_base_version, $version_cible, $maj); } diff --git a/formulaires/contribution_inscrire.html b/formulaires/contribution_inscrire.html index 7600caa..c2b88a5 100644 --- a/formulaires/contribution_inscrire.html +++ b/formulaires/contribution_inscrire.html @@ -31,6 +31,10 @@ size=30, type=email, })] + [(#SAISIE{textarea, descriptif, + label=<:contrib:inscription_descriptif_label:>, + rows=3, + obligatoire=oui})]
<:contrib:inscription_fieldset_charte_label:> diff --git a/formulaires/contribution_inscrire.php b/formulaires/contribution_inscrire.php index aa3e354..d6286b7 100644 --- a/formulaires/contribution_inscrire.php +++ b/formulaires/contribution_inscrire.php @@ -17,7 +17,8 @@ function formulaires_contribution_inscrire_charger_dist($email) { $valeurs = array( 'username' => '', 'email' => '', - 'charte_approuvee' => '' + 'charte_approuvee' => '', + 'descriptif' => '', ); // On vérifie si l'email de l'auteur connecté correspond à un compte sur la forge @@ -37,11 +38,16 @@ function formulaires_contribution_inscrire_verifier_dist($email) { // Acquérie le username et l'email saisis $username = _request('username'); $email = _request('email'); + $descriptif = _request('descriptif'); // Vérifier la syntaxe de l'email $verifier = charger_fonction('verifier', 'inc/'); if ($erreur = $verifier(_request('email'), 'email')) { $erreurs['email'] = $erreur; + } elseif (!preg_match("/^[\w-]+$/", $username)) { + $erreurs['username'] = _T('contrib:inscription_username_nok_message'); + } elseif (strlen($descriptif) < 10) { + $erreurs['descriptif'] = _T('contrib:inscription_descriptif_nok_message'); } else { // Vérifier qu'une demande similaire n'est pas en cours $erreur = false; @@ -106,6 +112,7 @@ function formulaires_contribution_inscrire_traiter_dist($email) { // Récupération des saisies $set['username'] = _request('username'); $set['email'] = _request('email'); + $set['descriptif'] = _request('descriptif'); $set['charte_approuvee'] = 'oui'; // Pour l'instant, on ouvre le compte pour commit et ticket. diff --git a/lang/contrib_fr.php b/lang/contrib_fr.php index 0597a47..968d13a 100644 --- a/lang/contrib_fr.php +++ b/lang/contrib_fr.php @@ -58,10 +58,13 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'inscription_fieldset_charte_explication' => 'SPIP est un logiciel libre, chaque personne peut l’utiliser et le modifier à sa convenance. Cependant, toute participation à la communauté doit se faire dans le respect des buts et valeurs promus par le projet initial du minirézo et inscrits dans la Charte d\'accueil de SPIP.', 'inscription_username_label' => 'Nom d\'utilisateur ou d\'utilisatrice', 'inscription_email_label' => 'Adresse e-mail', + 'inscription_descriptif_label' => 'Pour nous mettre l\'eau à la bouche, décrivez en quelques mots vos prochaines contributions', 'inscription_charte_label' => 'J\'approuve la Charte d’accueil de SPIP', 'inscription_charte_nok_message' => 'Pour contribuer à SPIP, vous devez approuver la charte de fonctionnement.', 'inscription_ajout_ok_message' => 'L\'inscription a bien été prise en compte. Un administrateur ou une administratrice va s\'en occuper rapidement et vous recevrez un email pour vous avertir de la mise à disposition de votre compte.', 'inscription_ajout_nok_message' => 'Erreur lors de l\'enregistrement de votre demande. Veuillez essayer ultérieurement.', + 'inscription_descriptif_nok_message' => 'Un peu court non ? Allez, un petit effort.', + 'inscription_username_nok_message' => 'Seuls les caractères alphanumériques et les caractères « -_ » sont autorisés.', 'inscription_username_nok_inscex_message' => 'Une demande d\'inscription est déjà en cours avec le nom @username@.', 'inscription_email_nok_inscex_message' => 'Une demande d\'inscription est déjà en cours avec l\'email @email@.', 'inscription_username_nok_userex_message' => 'Un compte Gitea existe déjà avec le login @username@.', diff --git a/paquet.xml b/paquet.xml index 87c9f0a..fe3d878 100644 --- a/paquet.xml +++ b/paquet.xml @@ -5,7 +5,7 @@ etat="test" compatibilite="]3.2.999;4.0.*]" logo="contrib_logo-64.png" - schema="3" + schema="4" > Contrib - Mécanismes et espace privé