From: Olivier Tétard Date: Thu, 3 Oct 2013 20:33:28 +0000 (+0200) Subject: Affichage conditionnel de l'objectif lors de l'édition de campagnes. X-Git-Url: http://olivier.miskin.fr/git/?a=commitdiff_plain;h=9043ba408a8f417366df3cfbfb75d505e5ea9451;p=spip_souscriptions.git Affichage conditionnel de l'objectif lors de l'édition de campagnes. Affichage d'un nouveau bouton radio « oui / non » permettant d'afficher ou non les champs 'objectif' et 'objectif_initial'. --- diff --git a/formulaires/editer_souscription_campagne.php b/formulaires/editer_souscription_campagne.php index 0325d12..fb8d1e1 100644 --- a/formulaires/editer_souscription_campagne.php +++ b/formulaires/editer_souscription_campagne.php @@ -40,6 +40,13 @@ function formulaires_editer_souscription_campagne_charger_dist($id_souscription_ $row, $hidden); + $valeurs['objectif_oui_non'] = _request('objectif_oui_non'); + + /* Si la valeur du champ 'objectif' est 0, alors, c'est que + * l'objectif n'est pas activé. */ + $defaut_objectif = ""; + if($valeurs['objectif'] && $valeurs['objectif'] > 0) + $defaut_objectif = "on"; $saisies = array(array('saisie' => 'input', 'options' => array('nom' => 'titre', @@ -54,17 +61,27 @@ function formulaires_editer_souscription_campagne_charger_dist($id_souscription_ 'datas' => array('don' => 'Dons', 'adhesion' => 'Adhésions')) ), - array('saisie' => 'input', - 'options' => array('nom' => 'objectif', - 'obligatoire' => 'oui', - 'label' => _T('souscription:label_objectif'), - 'explication' => _T('souscription:explication_campagne_objectif')) + array('saisie' => 'oui_non', + 'options' => array('nom' => 'objectif_oui_non', + 'label' => _T('souscription:label_objectif_oui_non'), + 'defaut' => $defaut_objectif) ), - array('saisie' => 'input', - 'options' => array('nom' => 'objectif_initial', - 'obligatoire' => 'oui', - 'label' => _T('souscription:label_objectif_initial'), - 'explication' => _T('souscription:explication_campagne_objectif_initial')) + array('saisie' => 'fieldset', + 'options' => array('nom' => 'groupe_limite', + 'label' => _T('souscription:label_objectif_groupe'), + 'afficher_si' => '@objectif_oui_non@ == "on"'), + 'saisies' => array(array('saisie' => 'input', + 'options' => array('nom' => 'objectif', + 'obligatoire' => 'oui', + 'label' => _T('souscription:label_objectif'), + 'explication' => _T('souscription:explication_campagne_objectif')), + ), + array('saisie' => 'input', + 'options' => array('nom' => 'objectif_initial', + 'label' => _T('souscription:label_objectif_initial'), + 'explication' => _T('souscription:explication_campagne_objectif_initial')) + ) + ) ), array('saisie' => 'textarea', 'options' => array('nom' => 'texte', @@ -96,13 +113,17 @@ function formulaires_editer_souscription_campagne_verifier_dist($id_souscription if(!in_array($type, array('don', 'adhesion'))) $ret['type_objectif'] = _T("souscription:message_nok_objectif_invalide"); - $objectif_initial = _request('objectif_initial'); - if(!ctype_digit($objectif_initial) || intval($objectif_initial) < 0) - $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_invalide"); + /* Si un objectif est demandé, alors on vérifie que les champs sont + * bien des entiers. */ + if(_request('objectif_oui_non') == 'on') { + $objectif_initial = _request('objectif_initial'); + if(!ctype_digit($objectif_initial) || intval($objectif_initial) < 0) + $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_invalide"); - $objectif = _request('objectif'); - if(!ctype_digit($objectif) || intval($objectif) < 0) - $ret['objectif'] = _T("souscription:message_nok_objectif_initial_valeur"); + $objectif = _request('objectif'); + if(!ctype_digit($objectif) || intval($objectif) < 0) + $ret['objectif'] = _T("souscription:message_nok_objectif_initial_valeur"); + } return $ret; } @@ -115,6 +136,13 @@ function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_ $hidden='') { + /* Si un objectif n'est pas demandée, alors, on remplace la valeur + * fournie (quelqu'elle soit, par 0) */ + if(_request('objectif_oui_non') != "on") { + set_request('objectif', 0); + set_request('objectif_initial', 0); + } + $res = formulaires_editer_objet_traiter('souscription_campagne', $id_souscription_campagne, '', diff --git a/lang/souscription_fr.php b/lang/souscription_fr.php index a9c6e1e..1abbbfd 100644 --- a/lang/souscription_fr.php +++ b/lang/souscription_fr.php @@ -32,7 +32,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'explication_montant_adhesion' => ' ', 'explication_montant_don' => ' ', 'explication_montants' => 'Le montants divent être au format suivant: [montant]|[description] à raison d\'une entrée par ligne.', - 'explication_campagne_objectif' => 'Permet d\'indiquer un objectif monétaire pour la campagne.
Mettre 0 si la campagne n\'a pas d\'objectif.', + 'explication_campagne_objectif' => 'Permet d\'indiquer un objectif monétaire pour la campagne.', 'explication_campagne_objectif_initial' => 'Permet d\'indiquer le niveau initial de la campagne. Ce champs peut être utilisé pour indiquer des dons ou adhésions n\'ayant pas été compatibilisées par le module de souscriptions.', 'explication_recu_fiscal' => ' ', 'explication_type_objectif' => 'Type de l\'objectif (influe le montant de l\'objectif)', @@ -102,8 +102,10 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'label_montants_explication' => 'Texte d\'explication des montants', 'label_montants_label' => 'Label pour le champ « montants »', 'label_nom' => 'Nom', + 'label_objectif_oui_non' => 'Fixer un objectif à cette campagne', 'label_objectif' => 'Niveau de l\'objectif', 'label_objectif_initial' => 'Niveau initial de la campagne', + 'label_objectif_groupe' => 'Definition de l\'objectif de la campagne', 'label_pays' => 'Pays', 'label_prenom' => 'Prénom', 'label_recu_fiscal' => 'Recevoir un reçu fiscal',