From: Cerdic Date: Wed, 11 Dec 2013 08:02:53 +0000 (+0100) Subject: Ajout du mode de saisie radio+entree libre X-Git-Url: http://olivier.miskin.fr/git/?a=commitdiff_plain;h=4f5799478da7d42f157194bccad32a8d6895bdfb;p=spip_souscriptions.git Ajout du mode de saisie radio+entree libre +amelioration des libelle dans la configuration du plugin et d'une campagne --- diff --git a/formulaires/configurer_souscription.html b/formulaires/configurer_souscription.html index 8ff2b97..409031c 100644 --- a/formulaires/configurer_souscription.html +++ b/formulaires/configurer_souscription.html @@ -40,6 +40,8 @@ #SET{val,radio} + #SET{val,radioinput} + #SET{val,selection} @@ -106,6 +108,8 @@ #SET{val,radio} + #SET{val,radioinput} + #SET{val,selection} diff --git a/formulaires/configurer_souscription.php b/formulaires/configurer_souscription.php index 8fe2c9b..b2cf8c1 100644 --- a/formulaires/configurer_souscription.php +++ b/formulaires/configurer_souscription.php @@ -7,26 +7,26 @@ function formulaires_configurer_souscription_verifier_dist() { /* FIXME: vérifier le format de 'adhesion_montants' et 'don_montants' */ $erreurs = array(); - $type_saisies = array("input", "radio", "selection"); + $type_saisies = array("input", "radio", "radioinput", "selection"); if(_request("adhesion_activer")) { if(!_request("adhesion_type_saisie")) { - $erreurs["adhesion_type_saisie"] = _T("souscription:message_nok_champ_obligatoire"); + $erreurs["adhesion_type_saisie"] = _T("souscription:erreur_champ_obligatoire"); } if(!in_array(_request("adhesion_type_saisie"), $type_saisies)) { - $erreurs["adhesion_type_saisie"] = _T("souscription:message_nok_champ_invalide"); + $erreurs["adhesion_type_saisie"] = _T("souscription:erreur_champ_invalide"); } } if(_request("don_activer")) { if(!_request("don_type_saisie")) { - $erreurs["don_type_saisie"] = _T("souscription:message_nok_champ_obligatoire"); + $erreurs["don_type_saisie"] = _T("souscription:erreur_champ_obligatoire"); } if(!in_array(_request("don_type_saisie"), $type_saisies)) { - $erreurs["don_type_saisie"] = _T("souscription:message_nok_champ_invalide"); + $erreurs["don_type_saisie"] = _T("souscription:erreur_champ_invalide"); } } diff --git a/formulaires/editer_souscription_campagne.html b/formulaires/editer_souscription_campagne.html index 8aee088..e14cb95 100644 --- a/formulaires/editer_souscription_campagne.html +++ b/formulaires/editer_souscription_campagne.html @@ -107,6 +107,8 @@ #SET{val,radio} + #SET{val,radioinput} + #SET{val,selection} diff --git a/formulaires/editer_souscription_campagne.php b/formulaires/editer_souscription_campagne.php index a5ff7cd..ecc1bea 100644 --- a/formulaires/editer_souscription_campagne.php +++ b/formulaires/editer_souscription_campagne.php @@ -102,16 +102,18 @@ function formulaires_editer_souscription_campagne_verifier_dist($id_souscription * dans la fonction traiter. */ if (_request('configuration_specifique')){ $type_saisie = _request('type_saisie'); - if (!$type_saisie || !in_array($type_saisie, array('radio', 'selection', 'input'))) - $erreurs['type_saisie'] = _T('souscription:erreur_type_saisie'); - - $montants = _request('montants'); - if ($type_saisie && in_array($type_saisie, array('radio', 'selection'))){ - if (!$montants || !is_string($montants)) - $erreurs['montants'] = _T('souscription:erreur_montants'); - - elseif (!montants_str2array($montants)) - $erreurs['montants'] = _T('souscription:erreur_montants'); + $saisies = array("input", "radio", "radioinput", "selection"); + if (!$type_saisie || !in_array($type_saisie, $saisies)) + $erreurs['type_saisie'] = _T('souscription:erreur_champ_invalide'); + else { + $montants = _request('montants'); + if ($type_saisie && $type_saisie!=="input"){ + if (!$montants || !is_string($montants)) + $erreurs['montants'] = _T('souscription:erreur_montants'); + + elseif (!montants_str2array($montants)) + $erreurs['montants'] = _T('souscription:erreur_montants'); + } } } diff --git a/formulaires/inc-souscription-radio.html b/formulaires/inc-souscription-radio.html index 693a0f5..c4a131f 100644 --- a/formulaires/inc-souscription-radio.html +++ b/formulaires/inc-souscription-radio.html @@ -5,4 +5,4 @@ - + \ No newline at end of file diff --git a/formulaires/souscription.html b/formulaires/souscription.html index af25ba1..7d7184a 100644 --- a/formulaires/souscription.html +++ b/formulaires/souscription.html @@ -21,7 +21,7 @@
  • [ (#GET{erreurs}) - ][(#INCLURE{fond=formulaires/inc-souscription-#ENV{montant_type},name=#GET{name},valeur=#ENV*{#GET{name},#GET{defaut}},obli=#GET{obli},montants=#ENV{_montant_datas}})] + ][(#INCLURE{fond=formulaires/inc-souscription-#ENV{montant_type},name=#GET{name},valeur=#ENV*{#GET{name},#GET{defaut}},obli=#GET{obli},montants=#ENV{_montant_datas},montant_libre})] [

    (#ENV{montant_explication})

    ]
  • #SET{name,courriel}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} diff --git a/formulaires/souscription.php b/formulaires/souscription.php index f288fa2..d0a027a 100644 --- a/formulaires/souscription.php +++ b/formulaires/souscription.php @@ -56,6 +56,7 @@ function formulaires_souscription_charger_dist($id_souscription_campagne){ $montant_explication = nl2br(lire_config("souscription/${type}_montants_description")); return array('montant' => '', + 'montant_libre' => '', 'courriel' => '', 'recu_fiscal' => $recu_fiscal, 'envoyer_info' => 'on', @@ -142,6 +143,11 @@ function formulaires_souscription_verifier_dist($id_souscription_campagne){ * paramètres globaux. */ if ($e = _request('montant')){ + $libre = false; + if ($e=="libre"){ + $e = _request('montant_libre'); + $libre = true; + } if (!(ctype_digit($e))) $erreurs['montant'] = "Montant invalide"; else { @@ -156,8 +162,10 @@ function formulaires_souscription_verifier_dist($id_souscription_campagne){ /* On ne vérifie strictement la valeur du montant que si on * n'utilise pas le type de saisie « entrée libre » (input) pour * le montant. */ - if (($montant_type!="input") AND !array_key_exists($e, montants_str2array($montant_datas))) - $erreurs['montant'] = "Le montant spécifié est invalide"; + if (($montant_type!=="input") + AND !$libre + AND !array_key_exists($e, montants_str2array($montant_datas))) + $erreurs['montant'] = "Le montant spécifié est invalide"; } } @@ -196,6 +204,9 @@ function formulaires_souscription_traiter_dist($id_souscription_campagne){ // generer la transaction et l'associer a la souscription $inserer_transaction = charger_fonction('inserer_transaction', 'bank'); $montant = _request('montant'); + if ($montant=="libre") + $montant = _request('montant_libre'); + $id_auteur = (isset($GLOBALS['visiteur_session']['id_auteur'])?$GLOBALS['visiteur_session']['id_auteur']:0); $id_transaction = $inserer_transaction($montant, $montant, /* montant_ht */ diff --git a/lang/souscription_fr.php b/lang/souscription_fr.php index bea4d72..1f095af 100644 --- a/lang/souscription_fr.php +++ b/lang/souscription_fr.php @@ -24,8 +24,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'config_info_enregistree' => 'La nouvelle configuration a été enregistrée', 'confirmer' => 'Valider', 'confirmer_creation_campagne' => 'Enregistrer', - 'configurer_type_saisie_input' => 'Entrée libre', - 'configurer_type_saisie_radio' => 'Boutons radio', + 'configurer_type_saisie_input' => 'Montant libre', + 'configurer_type_saisie_radio' => 'Case à cocher', + 'configurer_type_saisie_radioinput' => 'Case à cocher + Montant libre', 'configurer_type_saisie_selection' => 'Liste déroulante', // E @@ -89,6 +90,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'label_informer_comite_local' => 'Me faire connaître auprès du comité local le plus proche', 'label_proposer_informer_comite_local' => 'Proposer d\'informer le comité local lors de l\'adhésion', 'label_montant' => 'Montant', + 'label_montant_libre' => 'Montant libre : ', 'label_montant_actuel' => 'Niveau actuel de la campagne', 'label_montant_liste' => 'Montant', 'label_montants' => 'Montants', @@ -102,7 +104,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'label_statut' => 'Statut', 'label_telephone' => 'Téléphone', 'label_titre' => 'Titre', - 'label_type_saisie' => 'Types de saisies', + 'label_type_saisie' => 'Mode de choix du montant', 'label_type_souscription' => 'Type de souscription', 'label_ville' => 'Ville', 'label_avancement_campagne_adhesions' => "Avancement de la campagne : @nombre@ sur @objectif@ !", @@ -113,9 +115,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'label_general_groupe' => 'Options générales', // M - 'message_nok_champ_invalide' => "Le type de saisie pour le montant est invalide", - 'message_nok_champ_obligatoire' => 'Ce champ est obligatoire', - 'message_nok_montants' => 'Erreur dans le format', + 'erreur_champ_invalide' => "Le type de saisie pour le montant est invalide", + 'erreur_champ_obligatoire' => 'Ce champ est obligatoire', + 'erreur_montants' => 'Erreur dans le format', // S 'souscription_titre' => 'Souscription',