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).
"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"
),
),
'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(),
);
'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',
}
}
+ /* 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;
}
$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',
'explication_montants' => 'Le montants divent être au format suivant: <code>[montant]|[description]</code> à 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 :",
'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',
$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);