]<textarea name="#GET{name}" class="textarea" rows="4">
#ENV*{#GET{name},#GET{defaut}}</textarea>
</li>
+ #SET{name,proposer_informer_comite_local}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]
+ #SET{val,off}
+ <input type="hidden" name="#GET{name}" value="#GET{val}" />
+ #SET{val,on}
+ <div class="choix">
+ <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
+ <label for="#GET{name}_#GET{val}"><:souscription:label_proposer_informer_comite_local:></label>
+ </div>
+ </li>
</ul>
</fieldset>
</li>
]<textarea name="#GET{name}" class="textarea" rows="4">
#ENV*{#GET{name},#GET{defaut}}</textarea>
</li>
+ #SET{name,proposer_infolettre}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]
+ #SET{val,off}
+ <input type="hidden" name="#GET{name}" value="#GET{val}" />
+ #SET{val,on}
+ <div class="choix">
+ <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
+ <label for="#GET{name}_#GET{val}"><:souscription:label_proposer_infolettre:></label>
+ </div>
+ </li>
</ul>
</fieldset>
</div>
</form>
</div>
-<script type="text/javascript">
- jQuery(function(){
- jQuery(".suite.fieldset").each(function(){
- var me=this;
- jQuery(me).prev(".editer").find("input.checkbox").click(function(){
- if (jQuery(this).prop("checked"))
- jQuery(me).show('fast');
- else
- jQuery(me).hide('fast');
- })
- })
- })
-</script>
-<style>
-input.checkbox:checked+label {font-weight: bold;}
-li.fieldset.adhesion {margin-bottom: 1em}
-li.suite {margin-left: 40px;}
-</style>
\ No newline at end of file
+<INCLURE{fond=formulaires/inc-formulaires-suite} />
#ACTION_FORMULAIRE{#ENV{action}}
<ul>
- #GENERER_SAISIES{#ENV{_saisies}}
+ #SET{name,titre}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+ <label for="#GET{name}"><:souscription_campagne:label_titre_campagne:> <:info_obligatoire_02:></label>[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
+ </li>
+ #SET{name,type_objectif}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+ <label for="#GET{name}"><:souscription_campagne:label_type_objectif:></label>[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]<select name="#GET{name}" class="select" id="#GET{name}">
+ #SET{val,don}
+ [(#CONFIG{souscription/don_activer,'off'}|=={on}|ou{[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)]})
+ <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]><:souscription_campagne:label_type_objectif_dons:> <:souscription_campagne:info_type_objectif_dons:></option>
+ ]
+ #SET{val,adhesion}
+ [(#CONFIG{souscription/adhesion_activer,'off'}|=={on}|ou{[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)]})
+ <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]><:souscription_campagne:label_type_objectif_adhesions:> <:souscription_campagne:info_type_objectif_adhesions:></option>
+ ]
+ </select>
+ </li>
+ #SET{name,texte}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+ <label for="#GET{name}"><:souscription_campagne:label_description:></label>[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]<textarea name="#GET{name}" class="textarea" rows="10">
+#ENV*{#GET{name},#GET{defaut}}</textarea>
+ </li>
+ #SET{name,objectif_oui_non}#SET{obli,''}#SET{defaut,#ENV{_defaut_objectif,''}}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]
+ #SET{val,'off'}
+ <input type="hidden" name="#GET{name}" value="#GET{val}" />
+ #SET{val,on}
+ <div class="choix">
+ <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
+ <label for="#GET{name}_#GET{val}"><:souscription_campagne:label_objectif_oui_non:></label>
+ </div>
+ </li>
+ <li class="suite fieldset limite[(#ENV{#GET{name},#GET{defaut}}|=={on}|non)none]">
+ <fieldset>
+ <legend><:souscription_campagne:label_objectif_groupe:></legend>
+ <ul>
+ #SET{name,objectif}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+ <label for="#GET{name}"><:souscription_campagne:label_objectif:> <:info_obligatoire_02:></label>[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}"/>
+ <p class="explication"><:souscription_campagne:explication_campagne_objectif:></p>
+ </li>
+ #SET{name,objectif_initial}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+ <label for="#GET{name}"><:souscription_campagne:label_objectif_initial:></label>[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
+ <p class="explication"><:souscription_campagne:explication_campagne_objectif_initial:></p>
+ </li>
+ #SET{name,objectif_limiter}#SET{obli,''}#SET{defaut,#ENV{_defaut_objectif,''}}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]
+ #SET{val,'off'}
+ <input type="hidden" name="#GET{name}" value="#GET{val}" />
+ #SET{val,on}
+ <div class="choix">
+ <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
+ <label for="#GET{name}_#GET{val}"><:souscription_campagne:label_objectif_limite:></label>
+ </div>
+ <p class="explication"><:souscription_campagne:explication_campagne_objectif_limite:></p>
+ </li>
+ </ul>
+ </fieldset>
+ </li>
+ #SET{name,configuration_specifique}#SET{obli,''}#SET{defaut,#ENV{_defaut_objectif,''}}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]
+ #SET{val,'off'}
+ <input type="hidden" name="#GET{name}" value="#GET{val}" />
+ #SET{val,on}
+ <div class="choix">
+ <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
+ <label for="#GET{name}_#GET{val}"><:souscription_campagne:label_configuration_specifique:></label>
+ </div>
+ <p class="explication"><:souscription_campagne:explication_configuration_specifique:></p>
+ </li>
+ <li class="suite fieldset configuration_specifique[(#ENV{#GET{name},#GET{defaut}}|=={on}|non)none]">
+ <fieldset>
+ <legend><:souscription_campagne:label_objectif_groupe:></legend>
+ <ul>
+ #SET{name,type_saisie}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+ <label for="#GET{name}"><:souscription:label_type_saisie:></label>[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]<select name="#GET{name}" class="select" id="#GET{name}">
+ #SET{val,input}
+ <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]><:souscription:configurer_type_saisie_input:></option>
+ #SET{val,radio}
+ <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]><:souscription:configurer_type_saisie_radio:></option>
+ #SET{val,selection}
+ <option value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)selected="selected"]><:souscription:configurer_type_saisie_selection:></option>
+ </select>
+ <p class="explication"><:souscription:explication_type_saisie:></p>
+ </li>
+ #SET{name,montants}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+ <label for="#GET{name}"><:souscription:label_montants:></label>[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]<textarea name="#GET{name}" class="textarea" rows="4">
+#ENV*{#GET{name},#GET{defaut}}</textarea>
+ <p class="explication"><:souscription:explication_montants:></p>
+ </li>
+ </ul>
+ </fieldset>
+ </li>
</ul>
<p class="boutons"><input type="submit" class="submit" value="<:souscription:confirmer_creation_campagne:>" /></p>
</form>
]
</div>
+<INCLURE{fond=formulaires/inc-formulaires-suite} />
+<script type="application/javascript">
+function up_visibility_montants(){
+ var val = jQuery('select[name="type_saisie"]').val();
+ console.log(val);
+ if (val=="input")
+ jQuery(".editer_montants").hide('fast');
+ else
+ jQuery(".editer_montants").show('fast');
+}
+jQuery(function(){
+ up_visibility_montants();
+ jQuery('select[name="type_saisie"],input.checkbox[name="configuration_specifique"]').change(up_visibility_montants);
+});
+</script>
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;
}
--- /dev/null
+<script type="text/javascript">
+ jQuery(function(){
+ jQuery(".suite.fieldset").each(function(){
+ var me=this;
+ jQuery(me).prev(".editer").find("input.checkbox").click(function(){
+ if (jQuery(this).prop("checked"))
+ jQuery(me).show('fast');
+ else
+ jQuery(me).hide('fast');
+ })
+ })
+ })
+</script>
+<style>
+input.checkbox:checked+label {font-weight: bold;}
+li.fieldset.adhesion {margin-bottom: 1em}
+li.suite {margin-left: 40px;}
+</style>
\ No newline at end of file
--- /dev/null
+#CACHE{0}
+<input type="text" name="#ENV{name}" class="text" value="#ENV*{valeur}" id="#ENV{name}" [(#HTML5|et{#ENV{obli}})required='required']/>
\ No newline at end of file
--- /dev/null
+#CACHE{0}
+<BOUCLE_p(POUR){tableau #ENV{montants}}>
+ #SET{val,#CLE}
+ <div class="choix">
+ <input type="radio" name="#ENV{name}" class="radio" id="#ENV{name}_#GET{val}" value="#GET{val}"[(#ENV{valeur}|=={#GET{val}}|oui)checked="checked"] />
+ <label for="#ENV{name}_#GET{val}">#VALEUR</label>
+ </div>
+</BOUCLE_p>
--- /dev/null
+#CACHE{0}
+<select name="#ENV{name}" class="select" id="#ENV{name}">
+ <option value=""><:souscription:info_choisissez_montant:></option>
+ <BOUCLE_p(POUR){tableau #ENV{montants}}>
+ #SET{val,#CLE}
+ <option value="#GET{val}"[(#ENV{valeur}|=={#GET{val}}|oui)selected="selected"]>#VALEUR</option>
+ </BOUCLE_p>
+</select>
<form method="post" action="#ENV{action}"><div>
#ACTION_FORMULAIRE{#ENV{action}}
+
+ [<p class="explication dispositions_fiscales">
+ (#CONFIG{souscription/dispositions_fiscales_explications}|nl2br)
+ </p>]
+
<ul>
- [(#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})]
- </ul>
+ #SET{name,montant}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+ <label for="#GET{name}">#ENV{montant_label}</label>[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ][<span class="input">(#INCLURE{fond=formulaires/inc-souscription-#ENV{montant_type},name=#GET{name},valeur=#ENV*{#GET{name},#GET{defaut}},obli=#GET{obli},montants=#ENV{_montant_datas}})</span>]
+ [<p class="explication">(#ENV{montant_explication})</p>]
+ </li>
+ #SET{name,courriel}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+ <label for="#GET{name}"><:souscription:label_courriel:></label>[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]<input type="email" name="#GET{name}" class="text email" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
+ </li>
+ #SET{name,recu_fiscal}#SET{obli,''}#SET{defaut,'non'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]
+ #SET{val,off}
+ <input type="hidden" name="#GET{name}" value="#GET{val}" />
+ #SET{val,on}
+ <div class="choix">
+ <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
+ <label for="#GET{name}_#GET{val}"><:souscription:label_recu_fiscal:></label>
+ </div>
+ </li>
+ <li class="fieldset suite souscription_bloc_fiscal[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|non)none]">
+ <fieldset>
+ <legend><:souscription:label_legende_bloc_fiscal:></legend>
+ [(#INCLURE{fond=inclure/souscription_bloc_fiscal_intro,type_souscription=#ENV{type_souscription}})]
+ <ul>
+ #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}}}
+ <li class="editer [ (#GET{obli1})][ (#GET{erreurs1}|oui)erreur][ (#GET{erreurs2}|oui)erreur]">
+ <div class="demi left editer_[(#GET{name1})]">
+ <label for="#GET{name1}"><:souscription:label_prenom:></label>[
+ <span class='erreur_message'>(#GET{erreurs1})</span>
+ ]<input type="text" name="#GET{name1}" class="text" value="#ENV*{#GET{name1},#GET{defaut1}}" id="#GET{name1}"/>
+ </div>
+ <div class="demi right editer_[(#GET{name2})]">
+ <label for="#GET{name2}"><:souscription:label_nom:></label>[
+ <span class='erreur_message'>(#GET{erreurs2})</span>
+ ]<input type="text" name="#GET{name2}" class="text" value="#ENV*{#GET{name2},#GET{defaut2}}" id="#GET{name2}"/>
+ </div>
+ </li>
+ #SET{name,adresse}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+ <label for="#GET{name}"><:souscription:label_adresse:></label>[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]<textarea name="#GET{name}" class="textarea" rows="3">
+#ENV*{#GET{name},#GET{defaut}}</textarea>
+ </li>
+ #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}}}
+ <li class="editer [ (#GET{obli1})][ (#GET{erreurs1}|oui)erreur][ (#GET{erreurs2}|oui)erreur]">
+ <div class="demi left editer_[(#GET{name1})]">
+ <label for="#GET{name1}"><:souscription:label_code_postal:></label>[
+ <span class='erreur_message'>(#GET{erreurs1})</span>
+ ]<input type="text" name="#GET{name1}" class="text" value="#ENV*{#GET{name1},#GET{defaut1}}" id="#GET{name1}"/>
+ </div>
+ <div class="demi right editer_[(#GET{name2})]">
+ <label for="#GET{name2}"><:souscription:label_ville:></label>[
+ <span class='erreur_message'>(#GET{erreurs2})</span>
+ ]<input type="text" name="#GET{name2}" class="text" value="#ENV*{#GET{name2},#GET{defaut2}}" id="#GET{name2}"/>
+ </div>
+ </li>
+ [(#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}}}
+ <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+ <label for="#GET{name}"><:souscription:label_telephone:></label>[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]<input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}"/>
+ </li>
+ </ul>
+ </fieldset>
+ </li>
- <fieldset class="souscription_bloc_fiscal">
- <legend><:souscription:label_legende_bloc_fiscal:></legend>
- [(#INCLURE{fond=inclure/souscription_bloc_fiscal_intro,type_souscription=#ENV{type_souscription}})]
- <ul>
- [(#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:>})]
- </ul>
- </fieldset>
+
+ [(#CONFIG{souscription/proposer_infolettre,off}|=={on}|oui)
+ #SET{name,envoyer_info}#SET{obli,''}#SET{defaut,'non'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+ <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
+ <span class='erreur_message'>(#GET{erreurs})</span>
+ ]
+ #SET{val,off}
+ <input type="hidden" name="#GET{name}" value="#GET{val}" />
+ #SET{val,on}
+ <div class="choix">
+ <input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
+ <label for="#GET{name}_#GET{val}"><:souscription:label_envoyer_info:></label>
+ </div>
+ </li>
+ ]
+
+ [(#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:> })]
+ ]
+ ]
+ </ul>
<p class="boutons"><input type="submit" class="submit" value="<:souscription:confirmer:>" /></p>
</div>
</form>
]
</div>
+<script type="text/javascript">
+ jQuery(function(){
+ jQuery(".suite.fieldset").each(function(){
+ var me=this;
+ jQuery(me).prev(".editer").find("input.checkbox").click(function(){
+ if (jQuery(this).prop("checked"))
+ jQuery(me).show('fast');
+ else
+ jQuery(me).hide('fast');
+ })
+ })
+ })
+</script>
+<style>
+input.checkbox:checked+label {font-weight: bold;}
+li.suite {margin-left: 40px;}
+li.suite.none {display: none;}
+</style>
\ No newline at end of file
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
*
* @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;
}
-<p>Formulaire fermé !</p>
\ No newline at end of file
+<p>La souscription est terminée, merci pour votre aide !</p>
\ No newline at end of file
--- /dev/null
+<?php
+
+// Ceci est un fichier langue de SPIP -- This is a SPIP language file
+// Produit automatiquement par le plugin LangOnet a partir de la langue source fr
+// Module: souscription
+// Langue: fr
+// Date: 28-05-2013 19:55:44
+// Items: 72
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+ 'explication_campagne_objectif' => '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.",
+
+);
+?>
'explication_montant_adhesion' => ' ',
'explication_montant_don' => ' ',
'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 :",
'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",
'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',
'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',
'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',
// 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',
'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',
<BOUCLE_campagne(SOUSCRIPTION_CAMPAGNES){id_souscription_campagne=#ENV{campagne}}{objectif>0}>
[(#SET{pourcentage_objectif,#AVANCEMENT_CAMPAGNE|div{#OBJECTIF}|mult{100}|round{2}})]
-
- <p>
+ <p class="avancement_texte">
[(#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}:>]
</p>
-
- <div class="progress progress-striped active">
+ <div class="avancement_progress progress progress-striped active">
<div class="bar" style="width: #GET{pourcentage_objectif}%;">#GET{pourcentage_objectif} %</div>
</div>
</BOUCLE_campagne>
<BOUCLE_campagne(SOUSCRIPTION_CAMPAGNES){id_souscription_campagne=#ENV{campagne}}>
+<div class="souscription">
<h3>#TITRE</h3>
-
-[(#INCLURE{fond=#VAL{inclure/presentation_type},type_objectif=#TYPE_OBJECTIF})]
-
-[(#TEXTE)]
-
-[(#ENV{avancement}|!={non}|?{#MODELE{avancement-campagne,campagne=#ENV{campagne}}})]
-
+[<span class="souscription_type">(#INCLURE{fond=#VAL{inclure/presentation_type},type_objectif=#TYPE_OBJECTIF})</span>]
+[<div class="souscription_presentation">(#TEXTE)</div>]
+[<div class="souscription_avancement">(#ENV{avancement}|!={non}|?{#MODELE{avancement-campagne,campagne=#ENV{campagne}}})</div>]
[(#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})]
]
+</div>
</BOUCLE_campagne>
<paquet prefix="souscription"
categorie="communication"
- version="0.20.1"
+ version="0.20.3"
etat="dev"
compatibilite="[3.0.5;3.0.*]"
logo="souscription-32.png"
<BOUCLE_souscription_campagne(SOUSCRIPTION_CAMPAGNES){id_souscription_campagne}>
[<div class="champ contenu_type_objectif[ (#TYPE_OBJECTIF*|strlen|?{'',vide})]">
- <label><:souscription:label_type_objectif:> : </label>
+ <div class='label'><:souscription_campagne:label_type_objectif:> : </div>
<span dir='#LANG_DIR' class='#EDIT{type_objectif} type_objectif'>(#TYPE_OBJECTIF)</span>
</div>]
-[<div class="champ contenu_objectif_initial[ (#OBJECTIF_INITIAL*|strlen|?{'',vide})]">
- <label><:souscription:label_objectif_initial:> : </label>
- <span dir='#LANG_DIR' class='#EDIT{objectif_initial} objectif_initial'>(#OBJECTIF_INITIAL)</span>
+[<div class="champ contenu_objectif_initial[ (#OBJECTIF_INITIAL*|intval|?{'',vide})]">
+ <div class='label'><:souscription_campagne:label_objectif_initial:> : </div>
+ <span dir='#LANG_DIR' class='#EDIT{objectif_initial} objectif_initial'>(#OBJECTIF_INITIAL|campagne_afficher_objectif{#TYPE_OBJECTIF})</span>
</div>]
-[<div class="champ contenu_objectif[ (#OBJECTIF*|strlen|?{'',vide})]">
- <label><:souscription:label_objectif:> : </label>
- <span dir='#LANG_DIR' class='#EDIT{objectif} objectif'>(#OBJECTIF)</span>
+[<div class="champ contenu_objectif[ (#OBJECTIF*|intval|?{'',vide})]">
+ <div class='label'><:souscription_campagne:label_objectif:> : </div>
+ <span dir='#LANG_DIR' class='#EDIT{objectif} objectif'>(#OBJECTIF|campagne_afficher_objectif{#TYPE_OBJECTIF})</span>
</div>]
-<div class="champ contenu_objectif">
- <label><:souscription:label_montant_actuel:> : </label>
- <span class='montant_actuel'>#AVANCEMENT_CAMPAGNE</span>
+<div class="champ contenu_montant_actuel">
+ <div class='label'><:souscription:label_montant_actuel:> : </div>
+ <span class='montant_actuel'>[(#AVANCEMENT_CAMPAGNE|campagne_afficher_objectif{#TYPE_OBJECTIF})][(#OBJECTIF|intval|oui)[ ((#AVANCEMENT_CAMPAGNE|mult{100}|div{#OBJECTIF}|round{1})%)]]</span>
</div>
+[ (#OBJECTIF_LIMITER*|=={on}|oui)
+<div class="champ contenu_objectif_limiter">
+ <div class='label'><:souscription:info_objectif_limite:></div>
+</div>
+]
+
-[<div class="champ contenu_texte[ (#TEXTE*|strlen|?{'',vide})]">
+[<div class="champ contenu_texte contenu_ps[ (#TEXTE*|strlen|?{'',vide})]">
+ <div class='label'><:info_descriptif:></div>
<span dir='#LANG_DIR' class='#EDIT{texte} texte'>(#TEXTE)</span>
</div>]
<BOUCLE_souscription_campagne(SOUSCRIPTION_CAMPAGNES){id_souscription_campagne=#ENV{id}}>
<div class='infos'>
-[(#SET{texte_objet,<:souscription:titre_souscription_campagne:>})]
+[(#SET{texte_objet,<:souscription_campagne:titre_souscription_campagne:>})]
<div class='numero'><:titre_cadre_numero_objet{objet=#GET{texte_objet}}:><p>#ID_SOUSCRIPTION_CAMPAGNE</p></div>
</div>
#ANCRE_PAGINATION
<div class="liste-objets souscription_campagnes">
<table class="spip liste">
- [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{souscription:info_1_souscription_campagnes,souscription:info_nb_souscription_campagnes}})</strong></caption>]
+ [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{souscription_campagne:info_1_souscription_campagne,souscription_campagne:info_nb_souscription_campagnes}})</strong></caption>]
<thead>
<tr class="first_row">
<th class="id" scope="col">[(#TRI{id_souscription_campagne,<:info_numero_abbreviation:>,ajax})]</th>
- <th class="titre" scope="col">[(#TRI{titre,<:souscription:label_titre:>,ajax})]</th>
+ <th class="titre" scope="col">[(#TRI{titre,<:souscription_campagne:label_titre_campagne:>,ajax})]</th>
+ <th class="objectif" scope="col"><:souscription_campagne:info_objectif:></th>
+ <th class="avancement" scope="col"><:souscription_campagne:info_avancement:></th>
+ <th class="type" scope="col"></th>
</tr>
</thead>
<tbody>
<BOUCLE_liste_souscription_campagnes(SOUSCRIPTION_CAMPAGNES){id_mot?}{id_auteur?}{where?}{recherche?}{tri #ENV{par,id_souscription_campagne},#GET{defaut_tri}}{pagination #ENV{nb,10}}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="id">#ID_SOUSCRIPTION_CAMPAGNE</td>
- <td class="titre secondaire">[(#AUTORISER{voir,souscription_campagne,#ID_SOUSCRIPTION_CAMPAGNE}|?{
+ <td class="titre principale">[(#AUTORISER{voir,souscription_campagne,#ID_SOUSCRIPTION_CAMPAGNE}|?{
<a href="[(#URL_ECRIRE{souscription_campagne,id_souscription_campagne=#ID_SOUSCRIPTION_CAMPAGNE})]">#TITRE</a>,
})]</td>
+ <td class="objectif">[(#OBJECTIF|intval|oui)[(#OBJECTIF|campagne_afficher_objectif{#TYPE_OBJECTIF})]]</td>
+ <td class="avancement">[(#AVANCEMENT_CAMPAGNE|campagne_afficher_objectif{#TYPE_OBJECTIF})][(#OBJECTIF|intval|oui)[ ((#AVANCEMENT_CAMPAGNE|mult{100}|div{#OBJECTIF}|round{1})%)]]</td>
+ <td class="type">[(#TYPE_OBJECTIF|=={don}|?{<:souscription_campagne:label_type_objectif_dons:>,<:souscription_campagne:label_type_objectif_adhesions:>})]</td>
</tr>
</BOUCLE_liste_souscription_campagnes>
</tbody>
[(#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})]
]
]
- <h1>#PRENOM (#NOM)</h1>
+ <h1>(#TITRE)[(#VAL{souscription_campagne}|objet_icone|inserer_attribut{class,cadre-icone})]</h1>
+ <strong>[(#TYPE_OBJECTIF|=={don}|?{<:souscription:sous_titre_type_dons:>,<:souscription:sous_titre_type_adhesions:>})]</strong>
],simple fiche_objet})]
[(#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})]
[(#AUTORISER{voir,souscriptioncampagne}|sinon_interdire_acces)]
-<INCLURE{fond=prive/objets/liste/souscription_campagnes, par=id_souscription_campagne, env, ajax, sinon=<:souscription:info_aucun_souscription_campagnes:>}>
+<INCLURE{fond=prive/objets/liste/souscription_campagnes, par=id_souscription_campagne, env, ajax, sinon=<:souscription_campagne:info_aucun_souscription_campagne:>}>
[(#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})]
]
<BOUCLE_souscription_campagne(SOUSCRIPTION_CAMPAGNES){id_souscription_campagne}{si #ENV{exec}|=={souscription_campagne}}>
-[<a href="(#URL_ECRIRE{souscription_campagnes})"><:souscription:titre_souscription_campagnes:></a> > <strong class="on">[(#TITRE)]</strong>]
+[<a href="(#URL_ECRIRE{souscription_campagnes})"><:souscription_campagne:titre_souscription_campagnes:></a> > <strong class="on">[(#TITRE)]</strong>]
</BOUCLE_souscription_campagne>
-<a href="#URL_ECRIRE{souscription_campagnes}"><:souscription:titre_souscription_campagnes:></a> > <strong class="on"><B_souscription_campagne><BOUCLE_souscription_campagne(SOUSCRIPTION_CAMPAGNES){id_souscription_campagne}{si #ENV{exec}|=={souscription_campagne_edit}}>#TITRE</BOUCLE_souscription_campagne></B_souscription_campagne><:ecrire:info_sans_titre:><//B_souscription_campagne></strong>
\ No newline at end of file
+<a href="#URL_ECRIRE{souscription_campagnes}"><:souscription_campagne:titre_souscription_campagnes:></a> > <strong class="on"><B_souscription_campagne><BOUCLE_souscription_campagne(SOUSCRIPTION_CAMPAGNES){id_souscription_campagne}{si #ENV{exec}|=={souscription_campagne_edit}}>#TITRE</BOUCLE_souscription_campagne></B_souscription_campagne><:ecrire:info_sans_titre:><//B_souscription_campagne></strong>
\ No newline at end of file
<BOUCLE_souscription_campagne(SOUSCRIPTION_CAMPAGNES){id_souscription_campagne}{si #ENV{exec}|=={souscription_campagne}}>
-[<a href="(#URL_ECRIRE{souscription_campagnes})"><:souscription:titre_souscription_campagnes:></a> > <strong class="on">[(#TITRE)]</strong>]
+[<a href="(#URL_ECRIRE{souscription_campagnes})"><:souscription_campagne:titre_souscription_campagnes:></a> > <strong class="on">[(#TITRE)]</strong>]
</BOUCLE_souscription_campagne>
--- /dev/null
+.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 {}
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;
}
/*
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