+ if($p->type_requete != "souscription_campagnes") {
+ $msg = array('zbug_champ_hors_boucle',
+ array('champ' => '#AVANCEMENT_CAMPAGNE')
+ );
+ erreur_squelette($msg, $p);
+ }
+ else {
+ $_campagne = champ_sql('id_souscription_campagne', $p);
+ $_type_objectif = champ_sql('type_objectif', $p);
+ $_objectif_initial = champ_sql('objectif_initial', $p);
+ $p->code = "calcul_avancement_campagne($_campagne, $_type_objectif, $_objectif_initial)";
+ $p->interdire_scripts = false;
+ }
+
+ return $p;
+}
+
+function montants_str2array($str) {
+ include_spip('inc/saisies');
+
+ /* Vérification du format de la chaine. Elle doit être sous la forme
+ * « [montant] | [label] », par exemple « 10 | 10 € ». */
+ foreach(explode("\n", trim($str)) as $l) {
+ if(!preg_match('/^[0-9]+\|.*/', $l)) {
+ return false;
+ }
+ }