if (!defined("_ECRIRE_INC_VERSION")) return;
function action_exporter_souscriptions_dist($arg=null) {
+ /*
+ * $arg contient les différents arguments, séparés par des '/'. Une
+ * fois passés dans la fonctions split, il se présente de la manière
+ * suivante :
+ * argument en position 1 : 'paye' ou 'tous'
+ * argument en position 2 : type de souscription (dons, adhesion)
+ */
/* FIXME: permettre de selectionner les exports */
/* FIXME: améliorer la jointure... */
exit;
}
- if($arg == "payes") {
- $row = sql_select("id_souscription, courriel,"
- ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id,"
- ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription,"
- ."id_souscription_campagne, titre",
- "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne) ",
- "reglee='oui'");
+ $arg = explode("/", $arg);
+
+ $type_statut = $arg[0];
+ $type_souscription = $arg[1];
+
+ /* Préparation de la requête */
+ $select = "id_souscription, courriel, type_souscription,"
+ ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id,"
+ ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription,"
+ ."spip_souscription_campagnes.id_souscription_campagne, titre";
+ $from = "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne)";
+
+ $where = array();
+ if($type_souscription)
+ $where[] = "type_souscription='$type_souscription'";
+ else
+ $type_souscription = "tous";
+
+
+ if($type_statut == "payes") {
+ $where[] = "reglee='oui'";
}
- elseif($arg == "tous") {
- $row = sql_select("id_souscription, courriel,"
- ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id,"
- ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription,"
- ."id_souscription_campagne, titre",
- "spip_souscriptions LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne)");
+ elseif($type_statut == "tous") {
+ /* Afficher toutes les transactions du type demandé */
}
else {
include_spip('inc/minipres');
exit;
}
+ $row = sql_select($select, $from, $where);
+
$entete = array("ID du don",
"Courriel",
"Montant",
+ "Type de souscription",
"Reglée",
"Statut",
"Date de paiement",
/* Utilisation de la fonction exporter_csv de Bonux */
$exporter_csv = charger_fonction('exporter_csv', 'inc/', true);
- $exporter_csv("souscriptions_${arg}", $row, ',', $entete);
+ $exporter_csv("souscriptions_${type_souscription}_${type_statut}", $row, ',', $entete);
exit();
}
<div>
#ACTION_FORMULAIRE{#ENV{action}}
+ <h2><:souscription:titre_configuration_adhesions:></h2>
+
+ <ul>
+ [(#SAISIE{case, adhesion_activer, label=<:souscription:label_activer_adhesion:>})]
+ [(#SAISIE{selection, adhesion_type_saisie, label=<:souscription:label_type_saisie:>, datas=#ARRAY{input, Entrée libre, radio, Boutons radio, selection, Liste déroulante}})]
+ [(#SAISIE{textarea, adhesion_montants, rows=4, label=<:souscription:label_montants:>, explication=<:souscription:explication_montants:>})]
+ </ul>
+
+ <h2><:souscription:titre_configuration_dons:></h2>
+
+ <ul>
+ [(#SAISIE{case, don_activer, label=<:souscription:label_activer_don:>})]
+ [(#SAISIE{selection, don_type_saisie, label=<:souscription:label_type_saisie:>, datas=#ARRAY{input, Entrée libre, radio, Boutons radio, selection, Liste déroulante}})]
+ [(#SAISIE{textarea, don_montants, rows=4, label=<:souscription:label_montants:>, explication=<:souscription:explication_montants:>})]
+ </ul>
+
<input type="hidden" name="_meta_casier" value="souscription" />
<p class="boutons"><span class="image_loading"> </span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
</div>
</form>
-</div>
\ No newline at end of file
+</div>
--- /dev/null
+<?php
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+include_spip('inc/config');
+
+function formulaires_configurer_souscription_charger_dist() {
+
+
+ $valeurs = array('adhesion_montants' => montants_array2str(lire_config("souscription/adhesion_montants")),
+ 'adhesion_type_saisie' => lire_config("souscription/adhesion_type_saisie"),
+ "adhesion_activer" => lire_config("souscription/adhesion_activer"),
+
+ 'don_montants' => montants_array2str(lire_config("souscription/don_montants")),
+ 'don_type_saisie' => lire_config("souscription/don_type_saisie"),
+ "don_activer" => lire_config("souscription/don_activer"),
+ );
+
+ return $valeurs;
+}
+
+function formulaires_configurer_souscription_verifier_dist() {
+ /* FIXME: vérifier le format de 'adhesion_montants' et 'don_montants' */
+
+ $erreurs = array();
+ $type_saisies = array("input", "radio", "selection");
+
+ if(_request("adhesion_activer")) {
+ if(!_request("adhesion_type_saisie")) {
+ $erreurs["adhesion_type_saisie"] = "Ce champs est obligatoire";
+ }
+
+ if(!in_array(_request("adhesion_type_saisie"), $type_saisies)) {
+ $erreurs["adhesion_type_saisie"] = "Le type de saisie pour le montant est invalide";
+ }
+ }
+
+ if(_request("don_activer")) {
+
+ if(!_request("don_type_saisie")) {
+ $erreurs["don_type_saisie"] = "Ce champs est obligatoire";
+ }
+
+ if(!in_array(_request("don_type_saisie"), $type_saisies)) {
+ $erreurs["don_type_saisie"] = "Le type de saisie pour le montant est invalide";
+ }
+ }
+
+ return $erreurs;
+}
+
+function formulaires_configurer_souscription_traiter_dist() {
+
+ ecrire_config("souscription/adhesion_montants", montants_str2array(_request("adhesion_montants")));
+ ecrire_config("souscription/adhesion_type_saisie", _request("adhesion_type_saisie"));
+ ecrire_config("souscription/adhesion_activer", _request("adhesion_activer"));
+
+ ecrire_config("souscription/don_montants", montants_str2array(_request("don_montants")));
+ ecrire_config("souscription/don_type_saisie", _request("don_type_saisie"));
+ ecrire_config("souscription/don_activer", _request("don_activer"));
+
+ $res = array('message_ok'=>_T('facteur:config_info_enregistree'));
+
+ return $res;
+}
+
+
+function montants_array2str($array) {
+ $montants = "";
+ foreach($array as $prix => $description) {
+ $montants .= $prix . "|" . $description . "\n";
+ }
+
+ return $montants;
+}
+
+function montants_str2array($str) {
+ $montants = array();
+
+ foreach(explode("\n", trim($str)) as $montant) {
+ list($prix, $description) = explode("|", $montant, 2);
+ $montants[trim($prix)] = trim($description);
+ }
+
+ return $montants;
+}
[(#SAISIE{selection, type_objectif, obligatoire=oui,
label=<:souscription_campagne:label_type_objectif:>,
explication=<:souscription_campagne:explication_type_objectif:>,
- datas=#ARRAY{don, Dons, adhesion, Adhésions, abonnement, Abonnements}})]
+ datas=#ARRAY{don, Dons, adhesion, Adhésions}})]
[(#SAISIE{input, objectif, obligatoire=oui, label=<:souscription_campagne:label_objectif:>, explication=<:souscription_campagne:explication_objectif:>})]
[(#SAISIE{input, objectif_initial, obligatoire=oui, label=<:souscription_campagne:label_objectif_initial:>, explication=<:souscription_campagne:explication_objectif_initial:>})]
[(#SAISIE{textarea, texte, label=<:souscription_campagne:label_description:>, inserer_barre=edition, rows=10})]
));
$type = _request("type_objectif");
- if(!in_array($type, array('don', 'abonnement', 'adhesion')))
+ if(!in_array($type, array('don', 'adhesion')))
$ret['type_objectif'] = "Type d'objectif invalide";
$objectif_initial = _request('objectif_initial');
#ACTION_FORMULAIRE{#ENV{action}}
<ul>
[(#SAISIE{input, courriel, obligatoire=oui, label=<:souscription:label_courriel:>})]
- [(#SAISIE{input, montant, obligatoire=oui, label=<:souscription:label_montant:>})]
+ [(#SAISIE{#CONFIG{souscription/#ENV{type_souscription}|concat{_type_saisie},input},
+ montant,
+ obligatoire=oui,
+ label=<:souscription:label_montant:>,
+ datas=#CONFIG{souscription/#ENV{type_souscription}|concat{_montants}}})]
[(#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:> })]]
"spip_souscription_campagnes",
"id_souscription_campagne=$id_souscription_campagne");
- if(!$type || !in_array($type, array("don", "adhesion", "abonnement")))
+ if(!$type || !in_array($type, array("don", "adhesion")))
$erreurs['message_erreur'] = "Type de souscription invalide";
/* Le champ 'type' (hidden) doit être le même que celui défini dans
+++ /dev/null
-<p><strong>Campagne d'abonnements</strong></p>
// E
'explication_objectif' => "Permet d'indiquer un objectif monétaire pour la campagne.<br/>Mettre 0 si la campagne n'a pas d'objectif.",
- 'explication_objectif_initial' => "Permet d'indiquer le niveau initial de la campagne. Ce champs peut être utilisé pour indiquer des dons, adhésions ou abonnements n'ayant pas été compatibilisées par le module de souscriptions.",
+ 'explication_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_type_objectif' => "Type de l'objectif (influe le montant de l'objectif)",
// I
'titre_souscriptions' => 'Souscriptions',
// T
- 'titre_page_configurer_souscription' => 'Configuration des modules de souscription',
+ 'titre_configurer_souscriptions' => 'Souscriptions',
+ 'titre_page_configurer_souscriptions' => 'Configuration des souscriptions',
'titre_page_souscriptions_tous' => 'Liste des souscriptions',
'titre_types_souscriptions' => 'Types de souscriptions',
// A
- 'ajouter_lien_souscription' => 'Ajouter ce don',
+ 'ajouter_lien_souscription' => 'Ajouter cette souscription',
// C
- 'confirmer' => 'Faire un don',
+ 'confirmer' => 'Faire une souscription',
// E
'explication_envoyer_info' => 'Souhaite recevoir des informations publiques',
+ 'explication_montants' => "Le montants divent être au format suivant: <code>[montant]|[description]</code> à raison d'une entrée par ligne.",
// I
- 'icone_creer_souscription' => 'Créer un don',
- 'icone_modifier_souscription' => 'Modifier ce don',
- 'info_1_souscription' => 'Un don',
- 'info_aucun_souscription' => 'Aucun don',
- 'info_nb_souscriptions' => '@nb@ dons',
- 'info_souscriptions_auteur' => 'Les dons de cet auteur',
+ 'icone_creer_souscription' => 'Créer une souscription',
+ 'icone_modifier_souscription' => 'Modifier cette souscription',
+ 'info_1_souscription' => 'Une souscription',
+ 'info_aucun_souscription' => 'Aucune souscription',
+ 'info_nb_souscriptions' => '@nb@ souscriptions',
+ 'info_souscriptions_auteur' => 'Les souscriptions de cet auteur',
// L
'label_adresse' => 'Adresse',
'label_ville' => 'Ville',
'label_campagne' => 'Campagne',
'label_titre_campagne' => 'Titre de la campagne',
- 'label_exporter_payes' => 'Exporter les dons payés',
- 'label_exporter_tous' => 'Exporter tous les dons',
+ 'label_exporter_payes' => 'Exporter les souscriptions payés',
+ 'label_exporter_tous' => 'Exporter toutes les souscriptions',
'label_informer_comite_local' => "Informer le comité local le plus proche",
-
- // R
- 'retirer_lien_souscription' => 'Retirer ce don',
- 'retirer_tous_liens_souscriptions' => 'Retirer tous les dons',
+ 'label_type_souscription' => "Type de souscription",
+ 'label_activer_adhesion' => "Activer le module d'adhésions",
+ 'label_activer_don' => "Activer le module dons",
+ 'label_type_saisie' => "Types de saisies",
+ 'label_montants' => "Montants",
// T
- 'texte_ajouter_souscription' => 'Ajouter un don',
- 'texte_changer_statut_souscription' => 'Ce don est :',
- 'texte_creer_associer_souscription' => 'Créer et associer un don',
- 'titre_langue_souscription' => 'Langue de ce don',
- 'titre_logo_souscription' => 'Logo de ce don',
+ 'texte_ajouter_souscription' => 'Ajouter une souscription',
+ 'texte_changer_statut_souscription' => 'Cette souscription est :',
'titre_souscription' => 'Souscription',
'titre_souscriptions' => 'Souscriptions',
- 'titre_souscriptions_rubrique' => 'Dons de la rubrique',
+ 'titre_configuration_adhesions' => 'Adhésions',
+ 'titre_configuration_dons' => 'Dons',
// V
'voir_exporter' => "Exporter les dons",
<BOUCLE_campagne(SOUSCRIPTION_CAMPAGNES){id_souscription_campagne=#ENV{campagne}}{objectif>0}>
<BOUCLE_avancement_campagne(SOUSCRIPTIONS transactions){id_souscription_campagne=#ID_SOUSCRIPTION_CAMPAGNE}{transactions.reglee=oui}{somme montant}{fusion id_transaction}>
[(#TYPE_OBJECTIF|=={don}|oui) #SET{montant,#SOMME{montant}|plus{#OBJECTIF_INITIAL}}]
- [(#TYPE_OBJECTIF|=={adhesion}|oui) #SET{montant,#TOTAL_BOUCLE}]
+ [(#TYPE_OBJECTIF|=={adhesion}|oui) #SET{montant,#TOTAL_BOUCLE|plus{#OBJECTIF_INITIAL}}]
[(#SET{pourcentage_objectif,#GET{montant}|div{#OBJECTIF}|mult{100}|round{2}})]
</BOUCLE_avancement_campagne>
Avancement de la campagne :
[(#TYPE_OBJECTIF|=={don}|oui) #GET{montant} € sur #OBJECTIF € !]
[(#TYPE_OBJECTIF|=={adhesion}|oui) #GET{montant} adhésions sur #OBJECTIF !]
- [(#TYPE_OBJECTIF|=={abonnement}|oui) #GET{montant} abonnements sur #OBJECTIF !]
</p>
<div class="progress progress-striped active">
<pipeline nom="trig_bank_notifier_reglement" inclure="souscription_pipelines.php" />
<menu nom="souscription" titre="souscription:titre_souscriptions" parent="menu_activite" icone="images/souscription_don-16.png" action="souscriptions" />
-
+ <menu nom="souscriptions" titre="souscription:titre_configurer_souscriptions" parent="menu_configuration" icone="images/souscriptions-16.png" action="configurer_souscriptions" />
</paquet>
<BOUCLE_souscription(SOUSCRIPTIONS transactions souscription_campagnes){id_souscription}>
+[<div class="champ contenu_type_souscription[ (#TYPE_SOUSCRIPTION*|strlen|?{'',vide})]">
+ <label><:souscription:label_type_souscription:> : </label>
+ <span dir="#LANG_DIR" class="#EDIT{type_souscription} type_souscription">(#TYPE_SOUSCRIPTION)</span>
+</div>]
+
[<div class="champ contenu_courriel[ (#COURRIEL*|strlen|?{'',vide})]">
<label><:souscription:label_courriel:> : </label>
<span dir="#LANG_DIR" class="#EDIT{courriel} courriel">(#COURRIEL)</span>
<thead>
<tr class="first_row">
<th class="courriel" scope="col">[(#TRI{courriel,<:souscription:label_courriel:>,ajax})]</th>
+ <th class="type_souscription" scope="col">[(#TRI{type_souscription,<:souscription:label_type_souscription:>,ajax})]</th>
<th class="montant" scope="col">[(#TRI{montant,<:souscription:label_montant:>,ajax})]</th>
- <th class="prenom" scope="col">[(#TRI{prenom,<:souscription:label_prenom:>,ajax})]</th>
<th class="nom" scope="col">[(#TRI{nom,<:souscription:label_nom:>,ajax})]</th>
<th class="date" scope="col">[(#TRI{date_souscription,<:date:>,ajax})]</th>
- <th class="statut" scope="col">[(#TRI{souscription_statut,<:statut:>,ajax})]</th>
+ <th class="statut" scope="col">[(#TRI{statut,<:statut:>,ajax})]</th>
<th class="id_souscription_campagne" scope="col">[(#TRI{id_souscription_campagne,<:souscription:label_campagne:>,ajax})]</th>
<th class="id" scope="col">[(#TRI{id_souscription,<:info_numero_abbreviation:>,ajax})]</th>
</tr>
</thead>
<tbody>
- <BOUCLE_liste_souscriptions(SOUSCRIPTIONS transactions){id_transaction?}{id_mot?}{id_auteur?}{where?}{recherche?}{tri #ENV{par,num nom},#GET{defaut_tri}}{par nom}{pagination #ENV{nb,10}}>
+ <BOUCLE_liste_souscriptions(SOUSCRIPTIONS transactions){id_transaction?}{id_mot?}{id_auteur?}{where?}{recherche?}{type_souscription==#ENV{type_souscription,'.'}}{tri #ENV{par,num nom},#GET{defaut_tri}}{par nom}{pagination #ENV{nb,10}}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<td class="courriel principale"><a href="[(#ID_SOUSCRIPTION|generer_url_entite{souscription})]" title="<:info_numero_abbreviation|attribut_html:> #ID_SOUSCRIPTION">[(#RANG). ]#COURRIEL</a></td>
+ <td class="type_souscription secondaire">[(#TYPE_SOUSCRIPTION)]</td>
<td class="montant secondaire">[(#MONTANT) €]</td>
- <td class="prenom secondaire">[(#PRENOM)]</td>
- <td class="nom secondaire">[(#NOM)]</td>
+ <td class="nom secondaire">#NOM #PRENOM</td>
<td class="date secondaire">[(#DATE_SOUSCRIPTION|affdate_jourcourt)]</td>
<td class="statut secondaire">[(#STATUT)]</td>
<td class="id_souscription_campagne" scope="col">[(#ID_SOUSCRIPTION_CAMPAGNE)]</td>
</B_liste_souscriptions>[
<div class="liste-objets souscriptions caption-wrap"><strong class="caption">(#ENV*{sinon,''})</strong></div>
]<//B_liste_souscriptions>
+
+[(#BOITE_OUVRIR{<:souscription:voir_exporter:>,'simple','section'})]
+[(#SET{arguments_export, ''})]
+
+[(#SET{arguments_export,#GET{arguments_export}|concat{/#ENV{type_souscription}|?{#ENV{type_souscription}}, /}})]
+
+<ul>
+ <li><a href="[(#URL_ACTION_AUTEUR{exporter_souscriptions,[(#VAL{payes}|concat{#GET{arguments_export}})]})]"><:souscription:label_exporter_payes:></a></li>
+ <li><a href="[(#URL_ACTION_AUTEUR{exporter_souscriptions,[(#VAL{tous}|concat{#GET{arguments_export}})]})]"><:souscription:label_exporter_tous:></a></li>
+</ul>
+#BOITE_FERMER
-[(#AUTORISER{configurer,_souscription}|sinon_interdire_acces)]
+[(#AUTORISER{configurer,_souscriptions}|sinon_interdire_acces)]
-<h1 class="grostitre"><:souscription:titre_page_configurer_souscription:></h1>
+<h1 class="grostitre"><:souscription:titre_page_configurer_souscriptions:></h1>
<div class="ajax">
#FORMULAIRE_CONFIGURER_SOUSCRIPTION
-</div>
\ No newline at end of file
+</div>
#FORMULAIRE_RECHERCHE_ECRIRE{#SELF,ajax}
<div class="nettoyeur"></div>
+<div class="onglets_simple clearfix">
+ <ul>
+ <li>[(#SELF|parametre_url{type_souscription,'XXX'}|replace{XXX,''}|lien_ou_expose{Toutes,[(#ENV{type_souscription}|non)],ajax})]</li>
+ <li>[(#SELF|parametre_url{type_souscription,'don'}|lien_ou_expose{Dons,#ENV{type_souscription}|=={don},ajax})]</li>
+ <li>[(#SELF|parametre_url{type_souscription,'adhesion'}|lien_ou_expose{Adhésions,#ENV{type_souscription}|=={adhesion},ajax})]</li>
+ </ul>
+</div>
<INCLURE{fond=prive/objets/liste/souscriptions, par=nom, env, ajax, sinon=<:souscription:info_aucun_souscription:>}>
+++ /dev/null
-[(#BOITE_OUVRIR{<:souscription:voir_exporter:>,'simple','section'})]
-<ul>
- <li><a href="[(#URL_ACTION_AUTEUR{exporter_souscriptions,payes})]"><:souscription:label_exporter_payes:></a></li>
- <li><a href="[(#URL_ACTION_AUTEUR{exporter_souscriptions,tous})]"><:souscription:label_exporter_tous:></a></li>
-</ul>
-#BOITE_FERMER