Browse Source

Ajout d'un champ de formulaire pour expliquer la raison de la demande (éviter aussi les spams ou les abus)

master
Eric Lupinacci 6 months ago
parent
commit
2d1de155fd
  1. 2
      base/contrib_declarations.php
  2. 5
      contrib_administrations.php
  3. 4
      formulaires/contribution_inscrire.html
  4. 9
      formulaires/contribution_inscrire.php
  5. 3
      lang/contrib_fr.php
  6. 2
      paquet.xml

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

5
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);
}

4
formulaires/contribution_inscrire.html

@ -31,6 +31,10 @@
size=30,
type=email,
})]
[(#SAISIE{textarea, descriptif,
label=<:contrib:inscription_descriptif_label:>,
rows=3,
obligatoire=oui})]
</fieldset>
<fieldset>
<legend><:contrib:inscription_fieldset_charte_label:></legend>

9
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.

3
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 <a href="https://www.spip.net/fr_article6431.html" target="blank">Charte d\'accueil de SPIP</a>.',
'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@.',

2
paquet.xml

@ -5,7 +5,7 @@
etat="test"
compatibilite="]3.2.999;4.0.*]"
logo="contrib_logo-64.png"
schema="3"
schema="4"
>
<nom>Contrib - Mécanismes et espace privé</nom>

Loading…
Cancel
Save