Déplacement et amélioration des fonctions montants_str2array().
authorOlivier Tétard <olivier.tetard@miskin.fr>
Sun, 6 Oct 2013 17:25:39 +0000 (19:25 +0200)
committerOlivier Tétard <olivier.tetard@miskin.fr>
Sun, 6 Oct 2013 17:27:19 +0000 (19:27 +0200)
La fonction saisie_chaine2tableau proposée par le plugin saisie est désormais utilisée.

formulaires/configurer_souscription.php
souscription_fonctions.php

index 774214b..882fdaa 100644 (file)
@@ -74,24 +74,3 @@ function formulaires_configurer_souscription_traiter_dist() {
 
   return $res;
 }
-
-
-function montants_array2str($array) {
-  $montants = "";
-  foreach($array as $prix => $description) {
-    $montants .= $prix . "|" . $description . "\n";
-  }
-
-  return $montants;
-}
-
-function montants_str2array($str) {
-  $montants = array();
-
-  foreach(explode("\n", trim($str)) as $montant) {
-    list($prix, $description) = explode("|", $montant, 2);
-    $montants[trim($prix)] = trim($description);
-  }
-
-  return $montants;
-}
index eccddeb..3d1c4aa 100644 (file)
@@ -42,3 +42,28 @@ function balise_AVANCEMENT_CAMPAGNE_dist($p) {
 
   return $p;
 }
+
+function montants_array2str($array) {
+  include_spip('inc/saisies');
+
+  $montants = "";
+  foreach($array as $prix => $description) {
+    $montants .= $prix . "|" . $description . "\n";
+  }
+
+  return $montants;
+}
+
+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", $str) as $l) {
+    if(!preg_match('/^[0-9]+\|.*/', $l)) {
+      return false;
+    }
+  }
+
+  return saisies_chaine2tableau(saisies_aplatir_chaine($str));
+}