From: Olivier Tétard Date: Tue, 10 Dec 2013 14:10:19 +0000 (+0100) Subject: Merge remote-tracking branch 'cedric/feature/editersouscription' into refconfig X-Git-Url: http://olivier.miskin.fr/git/?a=commitdiff_plain;h=36e7a885e18e78e6dcfd9403c06dc8404599a521;hp=e0f74ed1da8397f41ca08b9031d7a4d0098e2a99;p=spip_souscriptions.git Merge remote-tracking branch 'cedric/feature/editersouscription' into refconfig Refactoring du formulaire de souscription : - des wrappers avec des classes dans le modele pour permettre de styler - formulaire en HTML au lieu de #SAISIES, ce qui permet de regrouper nom/prenom et code postal/ville - l'inscription à la newsletter et l'information du comité local sont des options qu'il faut activer dans la config - PHPDoc, coquilles, indentation --- diff --git a/formulaires/configurer_souscription.html b/formulaires/configurer_souscription.html index b96dd83..8ff2b97 100644 --- a/formulaires/configurer_souscription.html +++ b/formulaires/configurer_souscription.html @@ -65,6 +65,18 @@ ] + #SET{name,proposer_informer_comite_local}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • [ + (#GET{erreurs}) + ] + #SET{val,off} + + #SET{val,on} +
    + + +
    +
  • @@ -135,6 +147,18 @@ ] + #SET{name,proposer_infolettre}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • [ + (#GET{erreurs}) + ] + #SET{val,off} + + #SET{val,on} +
    + + +
    +
  • @@ -143,21 +167,4 @@ - - \ No newline at end of file + diff --git a/formulaires/editer_souscription_campagne.html b/formulaires/editer_souscription_campagne.html index d330355..8aee088 100644 --- a/formulaires/editer_souscription_campagne.html +++ b/formulaires/editer_souscription_campagne.html @@ -7,7 +7,122 @@ #ACTION_FORMULAIRE{#ENV{action}}

    @@ -15,3 +130,18 @@ ] + + diff --git a/formulaires/editer_souscription_campagne.php b/formulaires/editer_souscription_campagne.php index 000ac5c..a5ff7cd 100644 --- a/formulaires/editer_souscription_campagne.php +++ b/formulaires/editer_souscription_campagne.php @@ -14,211 +14,137 @@ if (!defined('_ECRIRE_INC_VERSION')) return; include_spip('inc/actions'); include_spip('inc/editer'); -function formulaires_editer_souscription_campagne_identifier_dist($id_souscription_campagne='new', - $retour='', - $lier_trad=0, - $config_fonc='', - $row=array(), - $hidden='') -{ - return serialize(array(intval($id_souscription_campagne))); +function formulaires_editer_souscription_campagne_identifier_dist($id_souscription_campagne = 'new', + $retour = '', + $lier_trad = 0, + $config_fonc = '', + $row = array(), + $hidden = ''){ + return serialize(array(intval($id_souscription_campagne))); } -function formulaires_editer_souscription_campagne_charger_dist($id_souscription_campagne='new', - $retour='', - $lier_trad=0, - $config_fonc='', - $row=array(), - $hidden='') -{ - $valeurs = formulaires_editer_objet_charger('souscription_campagne', - $id_souscription_campagne, - '', - $lier_trad, - $retour, - $config_fonc, - $row, - $hidden); - - $valeurs['objectif_oui_non'] = _request('objectif_oui_non'); - - /* Si la valeur du champ 'objectif' est 0, alors, c'est que - * l'objectif n'est pas activé. */ - $defaut_objectif = ""; - if($valeurs['objectif'] && $valeurs['objectif'] > 0) - $defaut_objectif = "on"; - - $saisies = array(array('saisie' => 'input', - 'options' => array('nom' => 'titre', - 'label' => _T('souscription:label_titre'), - 'obligatoire' => 'oui') - ), - array('saisie' => 'selection', - 'options' => array('nom' => 'type_objectif', - 'obligatoire' => 'oui', - 'label' => _T('souscription:label_type_objectif'), - 'explication' => _T('souscription:explication_type_objectif'), - 'datas' => array('don' => 'Dons', - 'adhesion' => 'Adhésions')) - ), - array('saisie' => 'oui_non', - 'options' => array('nom' => 'objectif_oui_non', - 'label' => _T('souscription:label_objectif_oui_non'), - 'defaut' => $defaut_objectif) - ), - array('saisie' => 'fieldset', - 'options' => array('nom' => 'groupe_limite', - 'label' => _T('souscription:label_objectif_groupe'), - 'afficher_si' => '@objectif_oui_non@ == "on"'), - 'saisies' => array(array('saisie' => 'input', - 'options' => array('nom' => 'objectif', - 'obligatoire' => 'oui', - 'label' => _T('souscription:label_objectif'), - 'explication' => _T('souscription:explication_campagne_objectif')), - ), - array('saisie' => 'input', - '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' => 'oui_non', - 'options' => array('nom' => 'configuration_specifique', - 'label' => _T('souscription:label_configuration_specifique'), - 'explication' => _T('souscription:explication_configuration_specifique'), - 'defaut' => $defaut_objectif) - ), - array('saisie' => 'fieldset', - 'options' => array('nom' => 'groupe_configuration_specifique', - 'label' => _T('souscription:label_objectif_groupe'), - 'afficher_si' => '@configuration_specifique@ == "on"'), - 'saisies' => array(array('saisie' => 'selection', - 'options' => array('nom' => 'type_saisie', - 'label' => _T('souscription:label_type_saisie'), - 'explication' => _T('souscription:explication_type_saisie'), - 'datas' => array("input" => _T("souscription:configurer_type_saisie_input"), - "radio" => _T("souscription:configurer_type_saisie_radio"), - "selection" => _T("souscription:configurer_type_saisie_selection")), - 'defaut' => 'input') - ), - array('saisie' => 'textarea', - 'options' => array('nom' => 'montants', - 'label' => _T('souscription:label_montants'), - 'explication' => _T('souscription:explication_montants'), - 'afficher_si' => '@type_saisie@ == "radio" || @type_saisie@ == "selection"', - 'rows' => 4)) - ), - ), - array('saisie' => 'textarea', - 'options' => array('nom' => 'texte', - 'label' => _T('souscription:label_description'), - 'inserer_barre' => 'edition', - 'rows' => '10')) - ); - - $valeurs['_saisies'] = $saisies; - - return $valeurs; +function formulaires_editer_souscription_campagne_charger_dist($id_souscription_campagne = 'new', + $retour = '', + $lier_trad = 0, + $config_fonc = '', + $row = array(), + $hidden = ''){ + $valeurs = formulaires_editer_objet_charger('souscription_campagne', + $id_souscription_campagne, + '', + $lier_trad, + $retour, + $config_fonc, + $row, + $hidden); + + /* Si la valeur du champ 'objectif' est 0, alors, c'est que + * l'objectif n'est pas activé. */ + $valeurs['_defaut_objectif'] = ""; + if ($valeurs['objectif'] AND $valeurs['objectif']>0) + $valeurs['_defaut_objectif'] = "on"; + + // pour la saisie uniquement, pas en base + $valeurs['objectif_oui_non'] = ""; + + return $valeurs; } -function formulaires_editer_souscription_campagne_verifier_dist($id_souscription_campagne='new', - $retour='', - $lier_trad=0, - $config_fonc='', - $row=array(), - $hidden='') -{ - - $ret = formulaires_editer_objet_verifier('souscription_campagne', - $id_souscription_campagne, - array('titre', - 'type_objectif', - )); - - $type = _request("type_objectif"); - if(!in_array($type, array('don', 'adhesion'))) - $ret['type_objectif'] = _T("souscription:message_nok_objectif_invalide"); - - /* 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) - $ret['objectif'] = _T("souscription:message_nok_objectif_invalide"); - - $objectif_initial = _request('objectif_initial'); - if($objectif_initial != '') { - if(!ctype_digit($objectif_initial) || intval($objectif_initial < 0)) - $ret['objectif_initial'] = _T("souscription:message_nok_objectif_initial_valeur"); - elseif(intval($objectif_initial) > $objectif) - $ret['objectif_initial'] = _T("souscription:message_nok_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)) - $ret['limite'] = _T("souscription:message_nok_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'); - if(!$type_saisie || !in_array($type_saisie, array('radio', 'selection', 'input'))) - $ret['type_saisie'] = _T('souscription:message_nok_type_saisie'); - - $montants = _request('montants'); - if($type_saisie && in_array($type_saisie, array('radio', 'selection'))) { - if(!$montants || !is_string($montants)) - $ret['montants'] = _T('souscription:message_nok_montants'); - - elseif(!montants_str2array($montants)) - $ret['montants'] = _T('souscription:message_nok_montants'); - } - } - - return $ret; +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'); + if (!$type_saisie || !in_array($type_saisie, array('radio', 'selection', 'input'))) + $erreurs['type_saisie'] = _T('souscription:erreur_type_saisie'); + + $montants = _request('montants'); + if ($type_saisie && in_array($type_saisie, array('radio', 'selection'))){ + if (!$montants || !is_string($montants)) + $erreurs['montants'] = _T('souscription:erreur_montants'); + + elseif (!montants_str2array($montants)) + $erreurs['montants'] = _T('souscription:erreur_montants'); + } + } + + return $erreurs; } -function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne='new', - $retour='', - $lier_trad=0, - $config_fonc='', - $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', ''); - } - - if(_request('configuration_specifique' != "on")) { - set_request('type_saisie', ''); - set_request('montants', ''); - } - - $res = formulaires_editer_objet_traiter('souscription_campagne', - $id_souscription_campagne, - '', - $lier_trad, - $retour, - $config_fonc, - $row, - $hidden); - - return $res; +function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne = 'new', + $retour = '', + $lier_trad = 0, + $config_fonc = '', + $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', ''); + } + + if (_request('configuration_specifique'!="on")){ + set_request('type_saisie', ''); + set_request('montants', ''); + } + + $res = formulaires_editer_objet_traiter('souscription_campagne', + $id_souscription_campagne, + '', + $lier_trad, + $retour, + $config_fonc, + $row, + $hidden); + + return $res; } diff --git a/formulaires/inc-formulaires-suite.html b/formulaires/inc-formulaires-suite.html new file mode 100644 index 0000000..3ddde71 --- /dev/null +++ b/formulaires/inc-formulaires-suite.html @@ -0,0 +1,18 @@ + + \ No newline at end of file diff --git a/formulaires/inc-souscription-input.html b/formulaires/inc-souscription-input.html new file mode 100644 index 0000000..668c904 --- /dev/null +++ b/formulaires/inc-souscription-input.html @@ -0,0 +1,2 @@ +#CACHE{0} + \ No newline at end of file diff --git a/formulaires/inc-souscription-radio.html b/formulaires/inc-souscription-radio.html new file mode 100644 index 0000000..693a0f5 --- /dev/null +++ b/formulaires/inc-souscription-radio.html @@ -0,0 +1,8 @@ +#CACHE{0} + + #SET{val,#CLE} +
    + + +
    + diff --git a/formulaires/inc-souscription-selection.html b/formulaires/inc-souscription-selection.html new file mode 100644 index 0000000..ccee28b --- /dev/null +++ b/formulaires/inc-souscription-selection.html @@ -0,0 +1,8 @@ +#CACHE{0} + diff --git a/formulaires/souscription.html b/formulaires/souscription.html index 4878fc0..b868b74 100644 --- a/formulaires/souscription.html +++ b/formulaires/souscription.html @@ -11,33 +11,131 @@
    #ACTION_FORMULAIRE{#ENV{action}} + + [

    + (#CONFIG{souscription/dispositions_fiscales_explications}|nl2br) +

    ] +
      - [(#SAISIE{#ENV{montant_type}, montant, obligatoire=oui, label=#ENV{montant_label}, explication=#ENV{montant_explication}, datas=#ENV{montant_datas}})] - [(#SAISIE{explication, dispositions_fiscales_explications, texte=#CONFIG{souscription/dispositions_fiscales_explications}|nl2br})] - [(#SAISIE{input, courriel, obligatoire=oui, label=<:souscription:label_courriel:>})] - [(#SAISIE{oui_non, recu_fiscal, label=<:souscription:label_recu_fiscal:>})] - [(#SAISIE{oui_non, envoyer_info, label=<:souscription:label_envoyer_info:> })] - [(#ENV{type_souscription}|=={adhesion}|oui) [(#SAISIE{oui_non, informer_comite_local, label=<:souscription:label_informer_comite_local:> })]] - [(#SAISIE{hidden, id_souscription_campagne})] - [(#SAISIE{hidden, type_souscription})] -
    + #SET{name,montant}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • + [ + (#GET{erreurs}) + ][(#INCLURE{fond=formulaires/inc-souscription-#ENV{montant_type},name=#GET{name},valeur=#ENV*{#GET{name},#GET{defaut}},obli=#GET{obli},montants=#ENV{_montant_datas}})] + [

    (#ENV{montant_explication})

    ] +
  • + #SET{name,courriel}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • + [ + (#GET{erreurs}) + ] +
  • + #SET{name,recu_fiscal}#SET{obli,''}#SET{defaut,'non'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • [ + (#GET{erreurs}) + ] + #SET{val,off} + + #SET{val,on} +
    + + +
    +
  • +
  • +
    + <:souscription:label_legende_bloc_fiscal:> + [(#INCLURE{fond=inclure/souscription_bloc_fiscal_intro,type_souscription=#ENV{type_souscription}})] +
      + #SET{name1,prenom}#SET{obli1,'obligatoire'}#SET{defaut1,''}#SET{erreurs1,#ENV**{erreurs}|table_valeur{#GET{name1}}} + #SET{name2,nom}#SET{obli2,'obligatoire'}#SET{defaut2,''}#SET{erreurs2,#ENV**{erreurs}|table_valeur{#GET{name2}}} +
    • +
      + [ + (#GET{erreurs1}) + ] +
      +
      + [ + (#GET{erreurs2}) + ] +
      +
    • + #SET{name,adresse}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
    • + [ + (#GET{erreurs}) + ] +
    • + #SET{name1,code_postal}#SET{obli1,'obligatoire'}#SET{defaut1,''}#SET{erreurs1,#ENV**{erreurs}|table_valeur{#GET{name1}}} + #SET{name2,ville}#SET{obli2,'obligatoire'}#SET{defaut2,''}#SET{erreurs2,#ENV**{erreurs}|table_valeur{#GET{name2}}} +
    • +
      + [ + (#GET{erreurs1}) + ] +
      +
      + [ + (#GET{erreurs2}) + ] +
      +
    • + [(#SAISIE{selection, pays, label=<:souscription:label_pays:>, datas=#GET{liste_pays}})] + #SET{name,telephone}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
    • + [ + (#GET{erreurs}) + ] +
    • +
    +
    +
  • -
    - <:souscription:label_legende_bloc_fiscal:> - [(#INCLURE{fond=inclure/souscription_bloc_fiscal_intro,type_souscription=#ENV{type_souscription}})] -
      - [(#SAISIE{input, prenom, label=<:souscription:label_prenom:>})] - [(#SAISIE{input, nom, label=<:souscription:label_nom:>})] - [(#SAISIE{textarea, adresse, label=<:souscription:label_adresse:>, rows=3})] - [(#SAISIE{input, code_postal, label=<:souscription:label_code_postal:>})] - [(#SAISIE{input, ville, label=<:souscription:label_ville:>})] - [(#SAISIE{selection, pays, label=<:souscription:label_pays:>, datas=#GET{liste_pays}})] - [(#SAISIE{input, telephone, label=<:souscription:label_telephone:>})] -
    -
    + + [(#CONFIG{souscription/proposer_infolettre,off}|=={on}|oui) + #SET{name,envoyer_info}#SET{obli,''}#SET{defaut,'non'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • [ + (#GET{erreurs}) + ] + #SET{val,off} + + #SET{val,on} +
    + + +
    +
  • + ] + + [(#ENV{type_souscription}|=={adhesion}|oui) + [(#CONFIG{souscription/proposer_informer_comite_local,off}|=={on}|oui) + [(#SAISIE{oui_non, informer_comite_local, label=<:souscription:label_informer_comite_local:> })] + ] + ] +

    ] + + \ No newline at end of file diff --git a/formulaires/souscription.php b/formulaires/souscription.php index 8f3fe01..2767d18 100644 --- a/formulaires/souscription.php +++ b/formulaires/souscription.php @@ -15,32 +15,6 @@ include_spip('inc/actions'); include_spip('inc/editer'); include_spip('inc/config'); -/** - * Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité - * - * @param int|string $id_souscription - * Identifiant du souscription. 'new' pour un nouveau souscription. - * @param string $retour - * URL de redirection après le traitement - * @param int $lier_trad - * Identifiant éventuel d'un souscription source d'une traduction - * @param string $config_fonc - * Nom de la fonction ajoutant des configurations particulières au formulaire - * @param array $row - * Valeurs de la ligne SQL du souscription, si connu - * @param string $hidden - * Contenu HTML ajouté en même temps que les champs cachés du formulaire. - * @return string - * Hash du formulaire - */ -function formulaires_souscription_identifier_dist($id_souscription='new', - $retour='', - $lier_trad=0, - $config_fonc='', - $row=array(), - $hidden='') { - return serialize(array(intval($id_souscription))); -} /** * Chargement du formulaire d'édition de souscription @@ -49,261 +23,232 @@ function formulaires_souscription_identifier_dist($id_souscription='new', * * @uses formulaires_editer_objet_charger() * - * @param int|string $id_souscription - * Identifiant du souscription. 'new' pour un nouveau souscription. - * @param string $retour - * URL de redirection après le traitement - * @param int $lier_trad - * Identifiant éventuel d'un souscription source d'une traduction - * @param string $config_fonc - * Nom de la fonction ajoutant des configurations particulières au formulaire - * @param array $row - * Valeurs de la ligne SQL du souscription, si connu - * @param string $hidden - * Contenu HTML ajouté en même temps que les champs cachés du formulaire. + * @param int$id_souscription_campagne + * Identifiant de la campagne de souscription * @return array * Environnement du formulaire */ -function formulaires_souscription_charger_dist($id_souscription_campagne) { - - if(!verifier_campagne($id_souscription_campagne)) - return false; - - /* Récupération des information à propos de la campagne */ - $campagne = sql_fetsel(array("type_objectif", "configuration_specifique", "type_saisie", "montants"), - "spip_souscription_campagnes", - "id_souscription_campagne=$id_souscription_campagne"); - - $type = $campagne['type_objectif']; - - $recu_fiscal = ""; - if($type == "adhesion") - $recu_fiscal = "on"; - - if($campagne['configuration_specifique'] !== 'on') { - $montant_type = lire_config("souscription/{$type}_type_saisie", 'input'); - $montant_datas = lire_config("souscription/${type}_montants", array()); - } - else { - $montant_type = $campagne['type_saisie']; - $montant_datas = $campagne['montants']; - } - - $montant_label = lire_config("souscription/${type}_montants_label", _T('souscription:label_montant')); - $montant_explication = nl2br(lire_config("souscription/${type}_montants_description")); - - return array('montant' => '', - 'courriel' => '', - 'recu_fiscal' => $recu_fiscal, - 'envoyer_info' => 'on', - 'informer_comite_local' => 'on', - 'prenom' => '', - 'nom' => '', - 'adresse' => '', - 'code_postal' => '', - 'ville' => '', - 'pays' => 'FR', - 'telephone' => '', - 'id_souscription_campagne' => $id_souscription_campagne, - 'type_souscription' => $type, - 'montant_datas' => montants_str2array($montant_datas), - 'montant_type' => $montant_type, - 'montant_label' => $montant_label, - 'montant_explication' => $montant_explication - ); +function formulaires_souscription_charger_dist($id_souscription_campagne){ + + if (!verifier_campagne($id_souscription_campagne)) + return false; + + /* Récupération des information à propos de la campagne */ + $campagne = sql_fetsel(array("type_objectif", "configuration_specifique", "type_saisie", "montants"), + "spip_souscription_campagnes", + "id_souscription_campagne=$id_souscription_campagne"); + + $type = $campagne['type_objectif']; + + $recu_fiscal = ""; + if ($type=="adhesion") + $recu_fiscal = "on"; + + if ($campagne['configuration_specifique']!=='on'){ + $montant_type = lire_config("souscription/{$type}_type_saisie", 'input'); + $montant_datas = lire_config("souscription/${type}_montants", array()); + } else { + $montant_type = $campagne['type_saisie']; + $montant_datas = $campagne['montants']; + } + + $montant_label = lire_config("souscription/${type}_montants_label", _T('souscription:label_montant')); + $montant_explication = nl2br(lire_config("souscription/${type}_montants_description")); + + return array('montant' => '', + 'courriel' => '', + 'recu_fiscal' => $recu_fiscal, + 'envoyer_info' => 'on', + 'informer_comite_local' => 'on', + 'prenom' => '', + 'nom' => '', + 'adresse' => '', + 'code_postal' => '', + 'ville' => '', + 'pays' => 'FR', + 'telephone' => '', + 'id_souscription_campagne' => $id_souscription_campagne, + 'type_souscription' => $type, + '_montant_datas' => montants_str2array($montant_datas), + 'montant_type' => $montant_type, + 'montant_label' => $montant_label, + 'montant_explication' => $montant_explication + ); } + /** - * Vérifications du formulaire d'édition de souscription + * Chargement du formulaire d'édition de souscription * - * Vérifier les champs postés et signaler d'éventuelles erreurs + * Déclarer les champs postés et y intégrer les valeurs par défaut * - * @uses formulaires_editer_objet_verifier() + * @uses formulaires_editer_objet_charger() * - * @param int|string $id_souscription - * Identifiant du souscription. 'new' pour un nouveau souscription. - * @param string $retour - * URL de redirection après le traitement - * @param int $lier_trad - * Identifiant éventuel d'un souscription source d'une traduction - * @param string $config_fonc - * Nom de la fonction ajoutant des configurations particulières au formulaire - * @param array $row - * Valeurs de la ligne SQL du souscription, si connu - * @param string $hidden - * Contenu HTML ajouté en même temps que les champs cachés du formulaire. + * @param int$id_souscription_campagne + * Identifiant de la campagne de souscription * @return array * Tableau des erreurs */ -function formulaires_souscription_verifier_dist($id_souscription_campagne) { - $campagne = _request('id_souscription_campagne'); - - $erreurs = formulaires_editer_objet_verifier('souscription', 'new', - array('courriel', - 'montant', - 'id_souscription_campagne')); - - if(!$id_souscription_campagne || intval($id_souscription_campagne) != intval($campagne)) { - $erreurs['message_erreur'] = "Campagne invalide"; - } - - $campagne = sql_fetsel(array("type_objectif", "configuration_specifique", "type_saisie", "montants"), - "spip_souscription_campagnes", "id_souscription_campagne=$id_souscription_campagne"); - - $type_campagne = $campagne['type_objectif']; - - /* Le champ 'type' (hidden) doit être le même que celui défini dans - * la campagne. */ - if(_request('type_souscription') != $type_campagne) - $erreurs['message_erreur'] = "Type de souscription invalide : " . _request('type_souscription'); - - if(!verifier_campagne($id_souscription_campagne, $type_campagne)) { - $erreurs['message_erreur'] = "La campagne à laquelle est associée cette souscription est invalide"; - } - - - if(_request('recu_fiscal') || $type_campagne == "adhesion") { - foreach(array('prenom', 'nom', 'adresse', 'code_postal', 'ville', 'pays') as $obligatoire) { - if(!_request($obligatoire)) { - if($type_campagne == "adhesion") { - $erreurs[$obligatoire] = "Ce champ est obligatoire pour les adhésions"; - } - else { - $erreurs[$obligatoire] = 'Ce champ est obligatoire (reçu fiscal demandé)'; - } - } - } - } - - if ($e = _request('courriel') AND !email_valide($e)) - $erreurs['courriel'] = _T('form_prop_indiquer_email'); - - if($e = _request('pays')) { - $ret = sql_select('nom', 'spip_pays', "code='${e}'"); - - if(sql_count($ret) != 1) - $erreurs['pays'] = "Pays invalide"; - - /* Le code postal n'est vérifié que si on est dans le cas de la France */ - elseif($e = _request('pays') AND $e == "FR") { - if ($e = _request('code_postal') AND !preg_match("/^(2[ABab]|0[1-9]|[1-9][0-9])[0-9]{3}$/", $e)) { - $erreurs['code_postal'] = "Code postal invalide"; - } - } - } - - if ($e = _request('telephone') AND !preg_match("/^[0-9\+ \.]+$/", $e)) { - $erreurs['telephone'] = "Numéro de téléphone incorrect"; - } - - /* 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. - */ - if ($e = _request('montant')) { - if(!(ctype_digit($e))) - $erreurs['montant'] = "Montant invalide"; - else { - if($campagne['configuration_specifique'] !== 'on') { - $montant_type = lire_config("souscription/{$type}_type_saisie", 'input'); - $montant_datas = lire_config("souscription/${type}_montants", array()); - } - else { - $montant_type = $campagne['type_saisie']; - $montant_datas = montants_str2array($campagne['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 !array_key_exists($e, $montant_datas)) - $erreurs['montant'] = "Le montant spécifié est invalide" . var_export($campagne, true); - } - } - - if(count($erreurs) > 0) { - $erreurs['message_erreur'] = "Le formulaire contient des erreurs"; - } - - return $erreurs; +function formulaires_souscription_verifier_dist($id_souscription_campagne){ + $campagne = _request('id_souscription_campagne'); + + $erreurs = formulaires_editer_objet_verifier('souscription', 'new', + array('courriel', + 'montant', + 'id_souscription_campagne')); + + if (!$id_souscription_campagne || intval($id_souscription_campagne)!=intval($campagne)){ + $erreurs['message_erreur'] = "Campagne invalide"; + } + + $campagne = sql_fetsel(array("type_objectif", "configuration_specifique", "type_saisie", "montants"), + "spip_souscription_campagnes", "id_souscription_campagne=$id_souscription_campagne"); + + $type_campagne = $campagne['type_objectif']; + + /* Le champ 'type' (hidden) doit être le même que celui défini dans + * la campagne. */ + if (_request('type_souscription')!=$type_campagne) + $erreurs['message_erreur'] = "Type de souscription invalide : " . _request('type_souscription'); + + if (!verifier_campagne($id_souscription_campagne, $type_campagne)){ + $erreurs['message_erreur'] = "La campagne à laquelle est associée cette souscription est invalide"; + } + + + if (_request('recu_fiscal') || $type_campagne=="adhesion"){ + foreach (array('prenom', 'nom', 'adresse', 'code_postal', 'ville', 'pays') as $obligatoire){ + if (!_request($obligatoire)){ + if ($type_campagne=="adhesion"){ + $erreurs[$obligatoire] = "Ce champ est obligatoire pour les adhésions"; + } else { + $erreurs[$obligatoire] = 'Ce champ est obligatoire (reçu fiscal demandé)'; + } + } + } + } + + if ($e = _request('courriel') AND !email_valide($e)) + $erreurs['courriel'] = _T('form_prop_indiquer_email'); + + if ($e = _request('pays')){ + $ret = sql_select('nom', 'spip_pays', "code='${e}'"); + + if (sql_count($ret)!=1) + $erreurs['pays'] = "Pays invalide"; + + /* Le code postal n'est vérifié que si on est dans le cas de la France */ + elseif ($e = _request('pays') AND $e=="FR") { + if ($e = _request('code_postal') AND !preg_match("/^(2[ABab]|0[1-9]|[1-9][0-9])[0-9]{3}$/", $e)){ + $erreurs['code_postal'] = "Code postal invalide"; + } + } + } + + if ($e = _request('telephone') AND !preg_match("/^[0-9\+ \.]+$/", $e)){ + $erreurs['telephone'] = "Numéro de téléphone incorrect"; + } + + /* 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. + */ + if ($e = _request('montant')){ + if (!(ctype_digit($e))) + $erreurs['montant'] = "Montant invalide"; + else { + if ($campagne['configuration_specifique']!=='on'){ + $montant_type = lire_config("souscription/{$type_campagne}_type_saisie", 'input'); + $montant_datas = lire_config("souscription/${$type_campagne}_montants", array()); + } else { + $montant_type = $campagne['type_saisie']; + $montant_datas = montants_str2array($campagne['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 !array_key_exists($e, $montant_datas)) + $erreurs['montant'] = "Le montant spécifié est invalide" . var_export($campagne, true); + } + } + + if (count($erreurs)>0){ + $erreurs['message_erreur'] = "Le formulaire contient des erreurs"; + } + + return $erreurs; } /** - * Traitement du formulaire d'édition de souscription + * Chargement du formulaire d'édition de souscription * - * Traiter les champs postés + * Déclarer les champs postés et y intégrer les valeurs par défaut * - * @uses formulaires_editer_objet_traiter() + * @uses formulaires_editer_objet_charger() * - * @param int|string $id_souscription - * Identifiant du souscription. 'new' pour un nouveau souscription. - * @param string $retour - * URL de redirection après le traitement - * @param int $lier_trad - * Identifiant éventuel d'un souscription source d'une traduction - * @param string $config_fonc - * Nom de la fonction ajoutant des configurations particulières au formulaire - * @param array $row - * Valeurs de la ligne SQL du souscription, si connu - * @param string $hidden - * Contenu HTML ajouté en même temps que les champs cachés du formulaire. + * @param int$id_souscription_campagne + * Identifiant de la campagne de souscription * @return array * Retours des traitements */ -function formulaires_souscription_traiter_dist($id_souscription_campagne) { - $lier_trad=0; - $config_fonc=''; - $row=array(); - $hidden=''; - - $ret = formulaires_editer_objet_traiter('souscription', - 'new', - '', - $lier_trad, - $retour, - $config_fonc, - $row, - $hidden); - - $redirect = ""; - $row = sql_fetsel("transaction_hash,id_transaction", - "spip_transactions LEFT JOIN spip_souscriptions USING(id_transaction)", - "id_souscription=".$ret['id_souscription']); - - if(!$row) { - spip_log(sprintf("Erreur lors de la création de la transaction liée à la souscription [%s].", $ret['id_souscription']), "souscription"); - $ret['message_erreur'] = "Echec creation de la transaction"; - } - else { - spip_log(sprintf("La souscription [%s], associée à la transaction [%s] a bien été crée.", $ret['id_souscription'], $row['id_transaction']), "souscription"); - $hash = $row['transaction_hash']; - $id_transaction = $row['id_transaction']; - $redirect = generer_url_public("payer-acte", "id_transaction=$id_transaction&transaction_hash=$hash", false, false); - $ret['redirect'] = $redirect; - } - - return $ret; +function formulaires_souscription_traiter_dist($id_souscription_campagne){ + $lier_trad = 0; + $config_fonc = ''; + $row = array(); + $hidden = ''; + $retour = ''; + + set_request("id_souscription_campagne",$id_souscription_campagne); + + $ret = formulaires_editer_objet_traiter('souscription', + 'new', + '', + $lier_trad, + $retour, + $config_fonc, + $row, + $hidden); + + $redirect = ""; + $row = sql_fetsel("transaction_hash,id_transaction", + "spip_transactions LEFT JOIN spip_souscriptions USING(id_transaction)", + "id_souscription=" . $ret['id_souscription']); + + if (!$row){ + spip_log(sprintf("Erreur lors de la création de la transaction liée à la souscription [%s].", $ret['id_souscription']), "souscription"); + $ret['message_erreur'] = "Echec creation de la transaction"; + } else { + spip_log(sprintf("La souscription [%s], associée à la transaction [%s] a bien été crée.", $ret['id_souscription'], $row['id_transaction']), "souscription"); + $hash = $row['transaction_hash']; + $id_transaction = $row['id_transaction']; + $redirect = generer_url_public("payer-acte", "id_transaction=$id_transaction&transaction_hash=$hash", false, false); + $ret['redirect'] = $redirect; + } + + return $ret; } -function verifier_campagne($id_souscription_campagne, $type_souscription=null) { - /* FIXME: vérifier que la campagne a bien le bon statut (ouverte, fermée, terminée, etc.) */ +function verifier_campagne($id_souscription_campagne, $type_souscription = null){ + /* FIXME: vérifier que la campagne a bien le bon statut (ouverte, fermée, terminée, etc.) */ - $campagne = sql_fetsel(array('type_objectif', 'objectif_initial', 'objectif', 'objectif_limiter'), - 'spip_souscription_campagnes', 'id_souscription_campagne='.sql_quote(intval($id_souscription_campagne))); + $campagne = sql_fetsel(array('type_objectif', 'objectif_initial', 'objectif', 'objectif_limiter'), + 'spip_souscription_campagnes', 'id_souscription_campagne=' . sql_quote(intval($id_souscription_campagne))); - /* La campagne doit exister */ - if(!count($campagne['type_objectif'])) - return false; + /* La campagne doit exister */ + if (!count($campagne['type_objectif'])) + return false; - elseif($type_souscription != null && $campagne['type_objectif'] != $type_souscription) - return false; + elseif ($type_souscription!=null && $campagne['type_objectif']!=$type_souscription) + return false; - /* Si la campagne doit être fermée lorsque l'objectif est atteint, - * alors on bloque. */ - elseif($campagne['objectif_limiter'] && - calcul_avancement_campagne($id_souscription_campagne, $campagne['type_objectif'], $campagne['objectif_initial']) >= $campagne['objectif']) - return false; + /* Si la campagne doit être fermée lorsque l'objectif est atteint, + * alors on bloque. */ + elseif ($campagne['objectif_limiter'] && + calcul_avancement_campagne($id_souscription_campagne, $campagne['type_objectif'], $campagne['objectif_initial'])>=$campagne['objectif'] + ) + return false; - return true; + return true; } diff --git a/inclure/objectif_atteint.html b/inclure/objectif_atteint.html index eff9b28..5de726b 100644 --- a/inclure/objectif_atteint.html +++ b/inclure/objectif_atteint.html @@ -1 +1 @@ -

    Formulaire fermé !

    \ No newline at end of file +

    La souscription est terminée, merci pour votre aide !

    \ No newline at end of file diff --git a/lang/souscription_campagne_fr.php b/lang/souscription_campagne_fr.php new file mode 100644 index 0000000..5c6a25d --- /dev/null +++ b/lang/souscription_campagne_fr.php @@ -0,0 +1,55 @@ + 'Indiquer un montant en Euros pour des dons et un nombre pour des adhésions.', + '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_type_objectif' => 'Type de l\'objectif (influe le montant de l\'objectif)', + 'explication_configuration_specifique' => "Permet de configurer des niveaux spécifiques d'adhésion ou de dons pour cette campagne", + + 'icone_creer_souscription_campagne' => 'Créer une campagne de souscription', + 'icone_modifier_souscription_campagne' => 'Modifier cette campagne', + 'info_1_souscription_campagne' => '1 campagne', + 'info_aucun_souscription_campagne' => 'Aucune campagne', + 'info_nb_souscription_campagnes' => '@nb@ campagnes', + 'info_type_objectif_dons' => '(objectif en Euros)', + 'info_type_objectif_adhesions' => '(objectif en nombre d\'adhésions)', + + + 'titre_logo_souscription_campagne' => 'Logo de cette campagne', + 'titre_souscription_campagne' => 'Campagne', + 'titre_souscription_campagnes' => 'Campagnes', + + 'label_titre_campagne' => 'Titre de la campagne', + 'label_description' => 'Description de la campagne', + 'label_type_objectif' => 'Type d\'objectif', + 'label_type_objectif_dons' => 'Dons', + 'label_type_objectif_adhesions' => 'Adhésions', + 'label_objectif_oui_non' => 'Fixer un objectif à cette campagne', + '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_configuration_specifique' => 'Activer une configuration spécifique', + + 'info_objectif' => 'Objectif', + 'info_avancement' => 'Avancement', + + 'erreur_objectif_initial_invalide' => "Valeur de l'objectif initial invalide", + 'erreur_objectif_initial_valeur' => "Valeur de l'objectif initial invalide", + 'erreur_objectif_initial_supperieur_objectif' => "Valeur de l'objectif initial suppérieur à l'objectif", + 'erreur_objectif_invalide' => "Type d'objectif invalide", + 'erreur_objectif_don_inactif' => "Les objectifs de type Dons ne sont pas activés dans la configuration.", + 'erreur_objectif_adhesion_inactif' => "Les objectifs de type Adhésions ne sont pas activés dans la configuration.", + +); +?> diff --git a/lang/souscription_fr.php b/lang/souscription_fr.php index 931dbd8..bea4d72 100644 --- a/lang/souscription_fr.php +++ b/lang/souscription_fr.php @@ -32,30 +32,20 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'explication_montant_adhesion' => ' ', 'explication_montant_don' => ' ', '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 :", 'explication_bloc_fiscal_don' => "Ces informations sont nécessaire en vue de l'établissement du reçu permettant une déduction fiscale qui vous sera envoyé", - 'explication_configuration_specifique' => "Permet de configurer des niveaux spécifiques d'adhésion ou de dons pour cette campagne", 'explication_type_saisie' => "Mode d'affichage des différents montants possibles", // I 'icone_creer_souscription' => 'Créer une souscription', - 'icone_creer_souscription_campagne' => 'Créer une campagne', 'icone_modifier_souscription' => 'Modifier cette souscription', - 'icone_modifier_souscription_campagne' => 'Modifier cette campagne', - 'info_1_souscription' => 'Une souscription', - 'info_1_souscription_campagne' => 'Une campagne', - 'info_1_souscription_campagnes' => 'Une campagne', + 'info_1_souscription' => '1 souscription', 'info_aucun_souscription' => 'Aucune souscription', - 'info_aucun_souscription_campagne' => 'Aucune campagne', - 'info_aucun_souscription_campagnes' => 'Aucune campagne', - 'info_nb_souscription_campagnes' => '@nb@ campagnes', 'info_nb_souscriptions' => '@nb@ souscriptions', 'info_souscriptions_auteur' => 'Les souscriptions de cet auteur', + 'info_objectif_limite' => 'La campagne sera fermée lorsque l\'objectif sera atteint.', + 'info_choisissez_montant' => 'Choisissez un montant…', // L "label_exporter_entete_adresse" => "Adresse", @@ -86,7 +76,6 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'label_campagne' => 'Campagne', 'label_code_postal' => 'Code postal', 'label_courriel' => 'Courriel', - 'label_description' => 'Description de la campagne', 'label_dispositions_fiscales_explications' => 'Texte de présentation des dispositions fiscales', 'label_envoyer_info' => 'M\'inscrire sur la liste d\'information', 'label_exporter_campagne' => 'Campagne', @@ -98,6 +87,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'label_exporter_type_souscription' => "Type de souscription", 'label_id_transaction' => 'Identifiant de la transaction', 'label_informer_comite_local' => 'Me faire connaître auprès du comité local le plus proche', + 'label_proposer_informer_comite_local' => 'Proposer d\'informer le comité local lors de l\'adhésion', 'label_montant' => 'Montant', 'label_montant_actuel' => 'Niveau actuel de la campagne', 'label_montant_liste' => 'Montant', @@ -105,20 +95,13 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'label_montants_explication' => 'Texte d\'explication des montants', 'label_montants_label' => 'Label pour le champ « montants »', 'label_nom' => 'Nom', - 'label_objectif_oui_non' => 'Fixer un objectif à cette campagne', - '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_configuration_specifique' => 'Activer une configuration spécifique', 'label_pays' => 'Pays', 'label_prenom' => 'Prénom', + 'label_proposer_infolettre' => 'Proposer l\'inscription à la lettre d\'information', 'label_recu_fiscal' => 'Recevoir un reçu fiscal', 'label_statut' => 'Statut', 'label_telephone' => 'Téléphone', 'label_titre' => 'Titre', - 'label_titre_campagne' => 'Titre de la campagne', - 'label_type_objectif' => 'Type d\'objectif', 'label_type_saisie' => 'Types de saisies', 'label_type_souscription' => 'Type de souscription', 'label_ville' => 'Ville', @@ -132,10 +115,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( // M 'message_nok_champ_invalide' => "Le type de saisie pour le montant est invalide", 'message_nok_champ_obligatoire' => 'Ce champ est obligatoire', - 'message_nok_objectif_initial_invalide' => "Valeur de l'objectif initial invalide", - 'message_nok_objectif_initial_valeur' => "Valeur de l'objectif initial invalide", - 'message_nok_objectif_initial_supperieur_objectif' => "Valeur de l'objectif initial suppérieur à l'objectif", - 'message_nok_objectif_invalide' => "Type d'objectif invalide", + 'message_nok_montants' => 'Erreur dans le format', // S 'souscription_titre' => 'Souscription', @@ -146,12 +126,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'texte_ajouter_souscription' => 'Ajouter une souscription', 'texte_changer_statut_souscription' => 'Cette souscription est :', 'titre_configurer_souscriptions' => 'Souscriptions', - 'titre_logo_souscription_campagne' => 'Logo de cette campagne', 'titre_page_configurer_souscriptions' => 'Configuration des souscriptions', 'titre_page_souscriptions_tous' => 'Liste des souscriptions', 'titre_souscription' => 'Souscription', - 'titre_souscription_campagne' => 'Campagne', - 'titre_souscription_campagnes' => 'Campagnes', 'titre_souscriptions' => 'Souscriptions', 'titre_types_souscriptions' => 'Types de souscriptions', diff --git a/modeles/avancement-campagne.html b/modeles/avancement-campagne.html index 01a159b..c339c35 100644 --- a/modeles/avancement-campagne.html +++ b/modeles/avancement-campagne.html @@ -1,12 +1,10 @@ 0}> [(#SET{pourcentage_objectif,#AVANCEMENT_CAMPAGNE|div{#OBJECTIF}|mult{100}|round{2}})] - -

    +

    [(#TYPE_OBJECTIF|=={don}|oui) <:souscription:label_avancement_campagne_dons{montant=#AVANCEMENT_CAMPAGNE,objectif=#OBJECTIF}:>] [(#TYPE_OBJECTIF|=={adhesion}|oui) <:souscription:label_avancement_campagne_adhesions{nombre=#AVANCEMENT_CAMPAGNE,objectif=#OBJECTIF}:>]

    - -
    +
    #GET{pourcentage_objectif} %
    diff --git a/modeles/souscription.html b/modeles/souscription.html index a6ffb7c..ecfedc0 100644 --- a/modeles/souscription.html +++ b/modeles/souscription.html @@ -1,16 +1,14 @@ +

    #TITRE

    - -[(#INCLURE{fond=#VAL{inclure/presentation_type},type_objectif=#TYPE_OBJECTIF})] - -[(#TEXTE)] - -[(#ENV{avancement}|!={non}|?{#MODELE{avancement-campagne,campagne=#ENV{campagne}}})] - +[(#INCLURE{fond=#VAL{inclure/presentation_type},type_objectif=#TYPE_OBJECTIF})] +[
    (#TEXTE)
    ] +[
    (#ENV{avancement}|!={non}|?{#MODELE{avancement-campagne,campagne=#ENV{campagne}}})
    ] [(#OBJECTIF_LIMITER|non|ou{#OBJECTIF_LIMITER|=={on}|oui|et{#AVANCEMENT_CAMPAGNE|<{#OBJECTIF}|oui}}) #FORMULAIRE_SOUSCRIPTION{#ENV{campagne}} ] [(#OBJECTIF_LIMITER|=={on}|oui|et{#AVANCEMENT_CAMPAGNE|<{#OBJECTIF}|non}) [(#INCLURE{fond=inclure/objectif_atteint,env})] ] +
    diff --git a/paquet.xml b/paquet.xml index 0d23535..889e285 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,6 +1,6 @@ [
    - +
    <:souscription_campagne:label_type_objectif:> :
    (#TYPE_OBJECTIF)
    ] -[
    - - (#OBJECTIF_INITIAL) +[
    +
    <:souscription_campagne:label_objectif_initial:> :
    + (#OBJECTIF_INITIAL|campagne_afficher_objectif{#TYPE_OBJECTIF})
    ] -[
    - - (#OBJECTIF) +[
    +
    <:souscription_campagne:label_objectif:> :
    + (#OBJECTIF|campagne_afficher_objectif{#TYPE_OBJECTIF})
    ] -
    - - #AVANCEMENT_CAMPAGNE +
    +
    <:souscription:label_montant_actuel:> :
    + [(#AVANCEMENT_CAMPAGNE|campagne_afficher_objectif{#TYPE_OBJECTIF})][(#OBJECTIF|intval|oui)[ ((#AVANCEMENT_CAMPAGNE|mult{100}|div{#OBJECTIF}|round{1})%)]]
    +[ (#OBJECTIF_LIMITER*|=={on}|oui) +
    +
    <:souscription:info_objectif_limite:>
    +
    +] + -[
    +[
    +
    <:info_descriptif:>
    (#TEXTE)
    ] diff --git a/prive/objets/infos/souscription_campagne.html b/prive/objets/infos/souscription_campagne.html index 13bbba1..5726539 100644 --- a/prive/objets/infos/souscription_campagne.html +++ b/prive/objets/infos/souscription_campagne.html @@ -1,6 +1,6 @@
    -[(#SET{texte_objet,<:souscription:titre_souscription_campagne:>})] +[(#SET{texte_objet,<:souscription_campagne:titre_souscription_campagne:>})]
    <:titre_cadre_numero_objet{objet=#GET{texte_objet}}:>

    #ID_SOUSCRIPTION_CAMPAGNE

    diff --git a/prive/objets/liste/souscription_campagnes.html b/prive/objets/liste/souscription_campagnes.html index 2d66aee..bbcbbfd 100644 --- a/prive/objets/liste/souscription_campagnes.html +++ b/prive/objets/liste/souscription_campagnes.html @@ -5,20 +5,26 @@ #ANCRE_PAGINATION
    - [] + [] - + + + + - + + + diff --git a/prive/squelettes/contenu/souscription_campagne.html b/prive/squelettes/contenu/souscription_campagne.html index 63005a1..ac3d817 100644 --- a/prive/squelettes/contenu/souscription_campagne.html +++ b/prive/squelettes/contenu/souscription_campagne.html @@ -3,14 +3,15 @@ [(#BOITE_OUVRIR{[ [(#AUTORISER{modifier,souscription_campagne,#ID_SOUSCRIPTION_CAMPAGNE}) [(#ID_SOUSCRIPTION_CAMPAGNE|afficher_qui_edite{souscription_campagne}|non) - [(#URL_ECRIRE{souscription_campagne_edit,id_souscription_campagne=#ID_SOUSCRIPTION_CAMPAGNE}|icone_verticale{<:souscription:icone_modifier_souscription_campagne:>,souscription_campagne,edit,right ajax preload})] + [(#URL_ECRIRE{souscription_campagne_edit,id_souscription_campagne=#ID_SOUSCRIPTION_CAMPAGNE}|icone_verticale{<:souscription_campagne:icone_modifier_souscription_campagne:>,souscription_campagne,edit,right ajax preload})] ] [(#ID_SOUSCRIPTION_CAMPAGNE|afficher_qui_edite{souscription_campagne}|oui) [(#URL_ECRIRE{souscription_campagne_edit,id_souscription_campagne=#ID_SOUSCRIPTION_CAMPAGNE}|icone_verticale{#ID_SOUSCRIPTION_CAMPAGNE|afficher_qui_edite{souscription_campagne},warning-24,'',right edition_deja ajax preload})] ] ] -

    #PRENOM (#NOM)

    +

    (#TITRE)[(#VAL{souscription_campagne}|objet_icone|inserer_attribut{class,cadre-icone})]

    + [(#TYPE_OBJECTIF|=={don}|?{<:souscription:sous_titre_type_dons:>,<:souscription:sous_titre_type_adhesions:>})] ],simple fiche_objet})] @@ -24,7 +25,7 @@ [(#AUTORISER{modifier,souscription_campagne,#ID_SOUSCRIPTION_CAMPAGNE}) [(#ID_SOUSCRIPTION_CAMPAGNE|afficher_qui_edite{souscription_campagne}|non) - [(#URL_ECRIRE{souscription_campagne_edit,id_souscription_campagne=#ID_SOUSCRIPTION_CAMPAGNE}|icone_verticale{<:souscription:icone_modifier_souscription_campagne:>,souscription_campagne,edit,right ajax preload})] + [(#URL_ECRIRE{souscription_campagne_edit,id_souscription_campagne=#ID_SOUSCRIPTION_CAMPAGNE}|icone_verticale{<:souscription_campagne:icone_modifier_souscription_campagne:>,souscription_campagne,edit,right ajax preload})] ] [(#ID_SOUSCRIPTION_CAMPAGNE|afficher_qui_edite{souscription_campagne}|oui) [(#URL_ECRIRE{souscription_campagne_edit,id_souscription_campagne=#ID_SOUSCRIPTION_CAMPAGNE}|icone_verticale{#ID_SOUSCRIPTION_CAMPAGNE|afficher_qui_edite{souscription_campagne},warning-24,'',right edition_deja ajax preload})] diff --git a/prive/squelettes/contenu/souscription_campagnes.html b/prive/squelettes/contenu/souscription_campagnes.html index 6fbad12..c22fe9a 100644 --- a/prive/squelettes/contenu/souscription_campagnes.html +++ b/prive/squelettes/contenu/souscription_campagnes.html @@ -1,6 +1,6 @@ [(#AUTORISER{voir,souscriptioncampagne}|sinon_interdire_acces)] -}> +}> [(#AUTORISER{creer,souscriptioncampagne}) - [(#URL_ECRIRE{souscription_campagne_edit,new=oui}|icone_verticale{<:souscription:icone_creer_souscription_campagne:>,souscription_campagne,new,right})] + [(#URL_ECRIRE{souscription_campagne_edit,new=oui}|icone_verticale{<:souscription_campagne:icone_creer_souscription_campagne:>,souscription_campagne,new,right})] ] diff --git a/prive/squelettes/hierarchie/souscription_campagne.html b/prive/squelettes/hierarchie/souscription_campagne.html index d30f122..ad216ca 100644 --- a/prive/squelettes/hierarchie/souscription_campagne.html +++ b/prive/squelettes/hierarchie/souscription_campagne.html @@ -1,3 +1,3 @@ -[<:souscription:titre_souscription_campagnes:> > [(#TITRE)]] +[<:souscription_campagne:titre_souscription_campagnes:> > [(#TITRE)]] diff --git a/prive/squelettes/hierarchie/souscription_campagne_edit.html b/prive/squelettes/hierarchie/souscription_campagne_edit.html index 8d72ce2..83d29e5 100644 --- a/prive/squelettes/hierarchie/souscription_campagne_edit.html +++ b/prive/squelettes/hierarchie/souscription_campagne_edit.html @@ -1 +1 @@ -<:souscription:titre_souscription_campagnes:> > #TITRE<:ecrire:info_sans_titre:> \ No newline at end of file +<:souscription_campagne:titre_souscription_campagnes:> > #TITRE<:ecrire:info_sans_titre:> \ No newline at end of file diff --git a/prive/squelettes/hierarchie/souscription_campagnes.html b/prive/squelettes/hierarchie/souscription_campagnes.html index d30f122..ad216ca 100644 --- a/prive/squelettes/hierarchie/souscription_campagnes.html +++ b/prive/squelettes/hierarchie/souscription_campagnes.html @@ -1,3 +1,3 @@ -[<:souscription:titre_souscription_campagnes:> > [(#TITRE)]] +[<:souscription_campagne:titre_souscription_campagnes:> > [(#TITRE)]] diff --git a/prive/style_prive_plugin_souscription.html b/prive/style_prive_plugin_souscription.html new file mode 100644 index 0000000..e4bf7d7 --- /dev/null +++ b/prive/style_prive_plugin_souscription.html @@ -0,0 +1,7 @@ +.souscription_campagne #wysiwyg .contenu_type_objectif {display:none;} + +.souscription_campagne #wysiwyg .contenu_objectif_initial .label, +.souscription_campagne #wysiwyg .contenu_objectif .label, +.souscription_campagne #wysiwyg .contenu_montant_actuel .label {display:inline;font-weight:bold;} +.souscription_campagne #wysiwyg .contenu_objectif_limiter .label {display:inline;color:inherit;} +.souscription_campagne #wysiwyg .contenu_texte {} diff --git a/prive/themes/spip/images/souscription-24.png b/prive/themes/spip/images/souscription-24.png new file mode 100644 index 0000000..c11e1b6 Binary files /dev/null and b/prive/themes/spip/images/souscription-24.png differ diff --git a/prive/themes/spip/images/souscription_campagne-16.png b/prive/themes/spip/images/souscription_campagne-16.png new file mode 100644 index 0000000..c6a2eab Binary files /dev/null and b/prive/themes/spip/images/souscription_campagne-16.png differ diff --git a/prive/themes/spip/images/souscription_campagne-24.png b/prive/themes/spip/images/souscription_campagne-24.png new file mode 100644 index 0000000..efdd470 Binary files /dev/null and b/prive/themes/spip/images/souscription_campagne-24.png differ diff --git a/prive/themes/spip/images/souscription_campagne-32.png b/prive/themes/spip/images/souscription_campagne-32.png new file mode 100644 index 0000000..91006ef Binary files /dev/null and b/prive/themes/spip/images/souscription_campagne-32.png differ diff --git a/souscription_fonctions.php b/souscription_fonctions.php index 1ed1e80..fc57d61 100644 --- a/souscription_fonctions.php +++ b/souscription_fonctions.php @@ -9,10 +9,7 @@ function calcul_avancement_campagne($id_campagne, $type_objectif, $objectif_init array("S.id_souscription_campagne=".sql_quote($id_campagne), "T.reglee = 'oui'")); - $nombre = $res['nombre']; - $somme = $objectif_initial; - - return ($type_souscription == "don" ? $somme : $nombre) + $objectif_initial; + return ($type_objectif == "don" ? $res['somme'] : $res['nombre']) + $objectif_initial; } /* @@ -56,3 +53,7 @@ function montants_str2array($str) { return saisies_chaine2tableau(saisies_aplatir_chaine($str)); } + +function campagne_afficher_objectif($nombre,$type_objectif){ + return $nombre.($type_objectif == "don" ? " EUR" : ""); +} \ No newline at end of file
    (#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{souscription:info_1_souscription_campagnes,souscription:info_nb_souscription_campagnes}})(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{souscription_campagne:info_1_souscription_campagne,souscription_campagne:info_nb_souscription_campagnes}})
    [(#TRI{id_souscription_campagne,<:info_numero_abbreviation:>,ajax})][(#TRI{titre,<:souscription:label_titre:>,ajax})][(#TRI{titre,<:souscription_campagne:label_titre_campagne:>,ajax})]<:souscription_campagne:info_objectif:><:souscription_campagne:info_avancement:>
    #ID_SOUSCRIPTION_CAMPAGNE[(#AUTORISER{voir,souscription_campagne,#ID_SOUSCRIPTION_CAMPAGNE}|?{ + [(#AUTORISER{voir,souscription_campagne,#ID_SOUSCRIPTION_CAMPAGNE}|?{ #TITRE, })][(#OBJECTIF|intval|oui)[(#OBJECTIF|campagne_afficher_objectif{#TYPE_OBJECTIF})]][(#AVANCEMENT_CAMPAGNE|campagne_afficher_objectif{#TYPE_OBJECTIF})][(#OBJECTIF|intval|oui)[ ((#AVANCEMENT_CAMPAGNE|mult{100}|div{#OBJECTIF}|round{1})%)]][(#TYPE_OBJECTIF|=={don}|?{<:souscription_campagne:label_type_objectif_dons:>,<:souscription_campagne:label_type_objectif_adhesions:>})]