/** * Vérification du montant. Si la campagne est configurée pour * utiliser une configuration spécifique, alors, il faut vérifier * avec les montants de la campagne. Autrement, il faut utiliser les * paramètres globaux. * * @param $campagne * @param $erreurs * @return null|string */ function formulaires_souscription_trouver_montant($campagne, &$erreurs) { $e = _request('montant'); $libre = false; if ($ea = _request('abo_montant')) { $ea = _request('abo_montant'); if ($ea == "libre") { $ea = _request('abo_montant_libre'); if ($ea) { $libre = true; } } if ($ea) { $e = (strncmp($ea, "abo", 3) == 0 ? "" : "abo") . $ea; } } if ($e == "libre") { $e = _request('montant_libre'); $libre = true; } elseif ($e == "abo_libre") { $e = _request('abo_montant_libre') ? "abo" . _request('abo_montant_libre') : ""; $libre = true; } if ($e) { $abo = strncmp($e, "abo", 3) == 0 ? "abo_" : ""; if (!ctype_digit($abo ? substr($e, 3) : $e)) { $erreurs[$abo . 'montant'] = _T("souscription:erreur_montant_invalide"); } else { if ($campagne['configuration_specifique'] !== 'on') { $montant_type = lire_config("souscription/" . $campagne['type_objectif'] . "{$abo}_type_saisie", 'input'); $montant_datas = lire_config("souscription/" . $campagne['type_objectif'] . "{$abo}_montants", ''); } else { $montant_type = $campagne[$abo . 'type_saisie']; $montant_datas = $campagne[$abo . 'montants']; } /* On ne vérifie strictement la valeur du montant que si on * n'utilise pas le type de saisie « entrée libre » (input) pour * le montant. */ if ($montant_type !== "input" and !$libre and !array_key_exists($e, montants_str2array($montant_datas, $abo ? "abo" : ""))) { $erreurs[$abo . 'montant'] = _T('souscription:erreur_montant_specifie_invalide'); } } } return $e; }
function formulaires_editer_souscription_campagne_verifier_dist($id_souscription_campagne = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') { $erreurs = formulaires_editer_objet_verifier('souscription_campagne', $id_souscription_campagne, array('titre', 'type_objectif')); $type = _request("type_objectif"); if (!in_array($type, array('don', 'adhesion'))) { $erreurs['type_objectif'] = _T("souscription_campagne:erreur_objectif_invalide"); } elseif ($type == "don" and lire_config("souscription/don_activer", "off") !== "on") { $erreurs['type_objectif'] = _T("souscription_campagne:erreur_objectif_don_inactif"); } elseif ($type == "adhesion" and lire_config("souscription/adhesion_activer", "off") !== "on") { $erreurs['type_objectif'] = _T("souscription_campagne:erreur_objectif_adhesion_inactif"); } /* Si un objectif est demandé, alors on vérifie que les champs sont * bien des entiers. */ if (_request('objectif_oui_non') == 'on') { $objectif = _request('objectif'); if (!ctype_digit($objectif) || intval($objectif) < 0) { $erreurs['objectif'] = _T("souscription_campagne:erreur_objectif_invalide"); } $objectif_initial = _request('objectif_initial'); if ($objectif_initial != '') { if (!ctype_digit($objectif_initial) || intval($objectif_initial < 0)) { $erreurs['objectif_initial'] = _T("souscription_campagne:erreur_objectif_initial_valeur"); } elseif (intval($objectif_initial) > $objectif) { $erreurs['objectif_initial'] = _T("souscription_campagne:erreur_objectif_initial_supperieur_objectif"); } } } /* 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)) { $erreurs['limite'] = _T("souscription_campagne:erreur_limite_valeur"); } } /* Si une guration spécifique est demandée, alors on vérifie les * valeurs 'type_saisie' et 'montants' (si on a demandé un bouton * radio ou une selection). Autrement, les données sont supprimées * dans la fonction traiter. */ if (_request('configuration_specifique')) { $type_saisie = _request('type_saisie'); $saisies = array("none", "input", "radio", "radioinput", "selection"); if (!$type_saisie || !in_array($type_saisie, $saisies)) { $erreurs['type_saisie'] = _T('souscription:erreur_type_saisie_invalide'); } else { $montants = _request('montants'); if ($type_saisie and $type_saisie !== "input" and $type_saisie !== "none") { if (!$montants || !is_string($montants)) { $erreurs['montants'] = _T('souscription:erreur_champ_obligatoire'); } elseif (!montants_str2array($montants)) { $erreurs['montants'] = _T('souscription:erreur_montants'); } } } $abo_type_saisie = _request('abo_type_saisie'); if (!$abo_type_saisie || !in_array($abo_type_saisie, $saisies)) { $erreurs['abo_type_saisie'] = _T('souscription:erreur_type_saisie_invalide'); } else { $abo_montants = _request('abo_montants'); if ($abo_type_saisie and $abo_type_saisie !== "input" and $abo_type_saisie !== "none") { if (!$abo_montants || !is_string($abo_montants)) { $erreurs['abo_montants'] = _T('souscription:erreur_champ_obligatoire'); } elseif (!montants_str2array($abo_montants)) { $erreurs['abo_montants'] = _T('souscription:erreur_montants'); } } } if (!isset($erreurs['type_saisie']) and !isset($erreurs['abo_type_saisie']) and $type_saisie == "none" and $abo_type_saisie == "none") { $erreurs['type_saisie'] = $erreurs['abo_type_saisie'] = _T('souscription:erreur_type_saisie_obligatoire'); } } return $erreurs; }