From: Olivier Tétard Date: Thu, 3 Oct 2013 20:18:40 +0000 (+0200) Subject: Ajout de la possibilité de limiter les "places" d'une campagne. X-Git-Url: http://olivier.miskin.fr/git/?a=commitdiff_plain;h=c92914b1bfd980452d3ad30dc60afb9fb65b8f46;p=spip_souscriptions.git Ajout de la possibilité de limiter les "places" d'une campagne. Ajout d'un champ « limite » permettant d'indiquer si la campagne doit être limitée en nombre (par exemple dans le cas d'une adhésion à tarif spécial). --- diff --git a/base/souscription.php b/base/souscription.php index d0fc1db..4429e19 100644 --- a/base/souscription.php +++ b/base/souscription.php @@ -82,10 +82,10 @@ function souscription_declarer_tables_objets_sql($tables) { "objectif" => "int(11) NOT NULL DEFAULT 0", "objectif_initial" => "int(11) NOT NULL DEFAULT 0", "type_objectif" => "varchar(255) NOT NULL DEFAULT 0", + "objectif_limiter" => "varchar(3) NOT NULL DEFAULT 0", "titre" => "text NOT NULL DEFAULT ''", "texte" => "longtext NOT NULL DEFAULT ''", "statut" => "varchar(255) NOT NULL DEFAULT 0", - "limite" => "bigint(21) NOT NULL DEFAULT 0", "date" => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'", "maj" => "TIMESTAMP" ), @@ -94,8 +94,8 @@ function souscription_declarer_tables_objets_sql($tables) { ), 'titre' => "titre AS titre, '' AS lang", 'date' => "date", - 'champs_editables' => array('objectif', 'titre', 'texte', 'objectif_initial', 'type_objectif'), - 'champs_versionnes' => array('objectif', 'titre', 'texte', 'objectif_initial', 'type_objectif'), + 'champs_editables' => array('objectif', 'titre', 'texte', 'objectif_initial', 'type_objectif', 'objectif_limiter'), + 'champs_versionnes' => array('objectif', 'titre', 'texte', 'objectif_initial', 'type_objectif', 'objectif_limiter'), 'rechercher_champs' => array(), ); diff --git a/formulaires/editer_souscription_campagne.php b/formulaires/editer_souscription_campagne.php index 21793cc..d1b5695 100644 --- a/formulaires/editer_souscription_campagne.php +++ b/formulaires/editer_souscription_campagne.php @@ -80,8 +80,12 @@ function formulaires_editer_souscription_campagne_charger_dist($id_souscription_ 'options' => array('nom' => 'objectif_initial', 'label' => _T('souscription:label_objectif_initial'), 'explication' => _T('souscription:explication_campagne_objectif_initial')) - ) - ) + ), + array('saisie' => 'oui_non', + 'options' => array('nom' => 'objectif_limiter', + 'explication' => _T('souscription:explication_campagne_objectif_limite'), + 'label' => _T('souscription:label_objectif_limite'))) + ), ), array('saisie' => 'textarea', 'options' => array('nom' => 'texte', @@ -129,6 +133,15 @@ function formulaires_editer_souscription_campagne_verifier_dist($id_souscription } } + /* Si une limite est demandée, alors, on vérifie que le champs est + * bien un entier. */ + $limite_oui_non = _request('limite_oui_non'); + if($limite_oui_non == "on") { + $limite = _request('limite'); + if(!ctype_digit($objectif)) + $ret['limite'] = _T("souscription:message_nok_limite_valeur"); + } + return $ret; } @@ -139,12 +152,12 @@ function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_ $row=array(), $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); + set_request('objectif_limiter', ''); } $res = formulaires_editer_objet_traiter('souscription_campagne', diff --git a/lang/souscription_fr.php b/lang/souscription_fr.php index 06a18aa..569b740 100644 --- a/lang/souscription_fr.php +++ b/lang/souscription_fr.php @@ -34,6 +34,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( '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.', '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_campagne_objectif_limite' => "Permet de bloquer les nouvelles adhésions/dons pour cette campagne si l'objecif est attend (offre spéciale d'adhésion par exemple)", 'explication_recu_fiscal' => ' ', 'explication_type_objectif' => 'Type de l\'objectif (influe le montant de l\'objectif)', 'explication_bloc_fiscal_adhesion' => "Les informations suivantes sont nécessaire pour nous permettre de réaliser l'adhésion :", @@ -106,6 +107,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( '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_objectif_limite' => 'Fermer la campagne si l\'objectif est atteint', 'label_pays' => 'Pays', 'label_prenom' => 'Prénom', 'label_recu_fiscal' => 'Recevoir un reçu fiscal', diff --git a/souscription_administrations.php b/souscription_administrations.php index a3d3bc0..abb75dc 100644 --- a/souscription_administrations.php +++ b/souscription_administrations.php @@ -34,7 +34,7 @@ function souscription_upgrade($nom_meta_base_version, $version_cible) { $maj['0.3'] = array(array('sql_alter', "TABLE spip_souscriptions ADD telephone text NOT NULL DEFAULT ''")); - $maj['0.4'] = array(array('sql_alter', "TABLE spip_souscription_campagnes ADD limite bigint(21) NOT NULL DEFAULT 0")); + $maj['0.4'] = array(array('sql_alter', "TABLE spip_souscription_campagnes ADD objectif_limiter varchar(3) NOT NULL DEFAULT ''")); include_spip('base/upgrade'); maj_plugin($nom_meta_base_version, $version_cible, $maj);