source: spip-zone/_plugins_/Association/Associaspip/exec/activites.php @ 65777

Last change on this file since 65777 was 65777, checked in by gildas.cotomale@…, 8 years ago

suite factorisation et corrections

File size: 7.6 KB
Line 
1<?php
2/***************************************************************************\
3 *  Associaspip, extension de SPIP pour gestion d'associations             *
4 *                                                                         *
5 *  Copyright (c) 2007 Bernard Blazin & François de Montlivault (V1)       *
6 *  Copyright (c) 2010-2011 Emmanuel Saint-James & Jeannot Lapin (V2)       *
7 *                                                                         *
8 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
9 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
10\***************************************************************************/
11
12
13if (!defined('_ECRIRE_INC_VERSION'))
14        return;
15
16include_spip ('inc/navigation_modules');
17
18function exec_activites()
19{
20        if (!autoriser('associer', 'activites')) {
21                include_spip('inc/minipres');
22                echo minipres();
23        } else {
24                $id_evenement = intval(_request('id'));
25                if ($id_evenement) { // la presence de ce parametre interdit la prise en compte d'autres (a annuler donc si presents dans la requete)
26                        $annee = sql_getfetsel("DATE_FORMAT(date_debut, '%Y')",'spip_evenements', "id_evenement=$id_evenement"); // on recupere l'annee correspondante
27                } else {
28                        $annee = intval(_request('annee')); // on recupere l'annee requetee
29                        $id_mot = intval(_request('mot')); // on recupere l'id du mot cle requete
30                        $id_evenement = ''; // ne pas afficher ce disgracieux '0'
31                }
32                if (!$annee) {
33                        $annee = date('Y'); // par defaut c'est l'annee courante
34                        $id_evenement = ''; // virer l'ID inexistant
35                }
36                onglets_association('titre_onglet_activite', 'activites');
37                // TOTAUX : nombre d'activites de l'annee en cours repartis par mots-clefs
38                // TOTAUX : nombre d'activites de l'annee en cours repartis par iscriptions
39                $liste_effectifs = array();
40                $liste_effectifs['pair'] = sql_count(sql_select('*, SUM(a.inscrits)', 'spip_asso_activites AS a INNER JOIN spip_evenements AS e ON a.id_evenement=e.id_evenement ', "DATE_FORMAT(e.date_debut, '%Y')=$annee",'a.id_evenement', '', '', "SUM(a.inscrits)>0"));
41                $liste_effectifs['impair'] = sql_countsel('spip_asso_activites AS a LEFT JOIN spip_evenements AS e ON a.id_evenement=e.id_evenement', "DATE_FORMAT(e.date_debut, '%Y')=$annee",'a.id_evenement', "SUM(a.inscrits)=0");
42                $liste_effectifs['impair'] = sql_countsel('spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee")-$liste_effectifs['pair']; // le monde a l'envers... mais ca fonctionne
43                echo association_totauxinfos_effectifs('activites', array(
44                        'pair'=>array( 'activites_avec_inscrits', $liste_effectifs['pair'], ),
45                        'impair'=>array( 'activites_sans_inscrits', $liste_effectifs['impair'], ),
46                ));
47/*
48                // STATS sur toutes les participations
49                echo association_totauxinfos_stats('participations_par_personne_par_activite', 'activites', array('activite_entete_inscrits'=>'inscrits','entete_montant'=>'montant',), "DATE_FORMAT(date, '%Y')=$annee");
50*/
51                // TOTAUX : montants des participations durant l'annee en cours
52                $data = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT('date', '%Y')=$annee AND imputation=".sql_quote($GLOBALS['association_metas']['pc_activites']) );
53                echo association_totauxinfos_montants('activites', $data['somme_recettes'], $data['somme_depenses']);
54                // datation et raccourci vers la gestion des evenements
55                if ( test_plugin_actif('SIMPLECAL') ) { // gestion des evenements avec Simple Calendrier
56                        raccourcis_association(array(), array(
57                                'evenements' => array('simplecal-logo-16.png', 'evenement_tous'),
58                        ) );
59                } elseif ( test_plugin_actif('AGENDA') ) { // gestion des evenements avec Agenda 2
60                        raccourcis_association(array(), array(
61                                'evenements' => array('agenda-evenements-16.png', 'agenda_evenements'),
62                        ) );
63                } else { // pas de bloc de raccourcis
64                        echo association_date_du_jour();
65                        echo fin_boite_info(true);
66                }
67                debut_cadre_association('activites.gif','activite_titre_toutes_activites');
68                // FILTRES
69                echo '<form method="get" action="'. generer_url_ecrire('activites') .'">';
70                echo "\n<input type='hidden' name='exec' value='activites' />";
71                echo "\n<table width='100%' class='asso_tablo_filtres'><tr>";
72                echo '<td id="filtre_annee">'. association_selectionner_annee($annee, 'evenements', 'debut') .'</td>';
73                echo '<td id="filtre_id">'. association_selectionner_id($id_evenement) .'</td>';
74                if (test_plugin_actif('AGENDA')) { // le plugin "Agenda 2" peut associer des mots-cles aux evenements : les proposer comme critere de filtrage
75                        if ($id_mot) {
76                                $mc_sel = ', m.id_mot AS motact';
77                                $mc_join = ' LEFT JOIN spip_mots_evenements AS k ON  k.id_evenement=e.id_evenement LEFT JOIN spip_mots AS m ON k.id_mot=m.id_mot';
78                                //$mc_where = " AND (m.id_mot=$id_mot OR m.titre LIKE '$mot' OR m.titre IS NULL) ";
79                                $mc_where = "AND m.id_mot=$id_mot";
80                        } else {
81                                $mc_sel = $mc_join = $mc_where = '';
82                        }
83                        echo '<td id="filtre_mot">';
84                        echo '<select name="mot" onchange="form.submit()">';
85                        echo '<option value="">'._T('asso:entete_tous').'</option>';
86                        $query_groupes = sql_select('id_groupe, titre', 'spip_groupes_mots', "tables_liees LIKE '%evenements%'");
87                        while($data_groupes = sql_fetch($query_groupes)) {
88                                echo '<optgroup label="'.$data_groupes['titre'].'">';
89                                $query_mots = sql_select('id_mot, titre', 'spip_mots', 'id_groupe='.$data_groupes['id_groupe']);
90                                while($data_mots = sql_fetch($query_mots)) {
91                                        echo '<option value="'.$data_mots['id_mot'].'"';
92                                        if ($id_mot==$data_mots['id_mot']) {
93                                                echo ' selected="selected"';
94                                        }
95                                        echo '> '.$data_mots['titre'].'</option>';
96                                }
97                                echo '</optgroup>';
98                        }
99                        echo '</select></td>';
100                }
101                echo '<noscript><td><input type="submit" value="'._T('asso:bouton_filtrer').'" /></td></noscript>';
102                echo '</tr></table></form>';
103                //TABLEAU
104                echo association_bloc_listehtml(
105//                      array('*, e.id_evenement, e.titre AS intitule'.$mc_sel, 'spip_evenements AS e'.$mc_join, "DATE_FORMAT(date_debut, '%Y')=$annee $mc_where", '', 'date_debut DESC', sql_asso1page() ), // requete
106                        array("e.id_evenement, e.date_debut, e.date_fin, e.titre  AS intitule, e.lieu,  COUNT(a.id_activite)+SUM(a.inscrits) as personnes, SUM(a.montant) as montants, CASE SUM(a.inscrits) WHEN 0 THEN 'sans' ELSE 'avec' END invites $mc_sel", "spip_evenements AS e LEFT JOIN spip_asso_activites AS a ON e.id_evenement=a.id_evenement $mc_join", "DATE_FORMAT(date_debut, '%Y')=$annee $mc_where", 'e.id_evenement', 'date_debut DESC, date_fin DESC', sql_asso1page() ), // requete
107                        array(
108                                'id_evenement' => array('asso:entete_id', 'entier'),
109                                'date_debut' => array('agenda:evenement_date_du', 'date', 'dtstart'),
110                                'date_fin' => array('agenda:evenement_date_au', 'date', 'dtend'),
111                                'intitule' => array('asso:entete_intitule', 'texte'),
112                                'lieu' => array('agenda:evenement_lieu', 'texte'),
113                                'personnes' => array('asso:activite_entete_inscrits', 'entier'),
114                                'montants' => array('asso:entete_montant', 'prix'),
115                        ), // entetes et formats des donnees
116                        array(
117                                array('faire', 'activite_bouton_ajouter_inscription', 'creer-12.gif', 'edit_activite', 'id_evenement=$$'),
118                                array('faire', 'activite_bouton_voir_liste_inscriptions', 'voir-12.png', 'inscrits_activite', 'id=$$'),
119                        ), // boutons d'action
120                        'id_evenement', // champ portant la cle des lignes et des boutons
121                        array('sans'=>'pair', 'avec'=>'impair'), 'invites', $id_evenement
122                );
123                //SOUS-PAGINATION
124                echo "<table width='100%' class='asso_tablo_filtres'><tr>\n";
125                echo association_selectionner_souspage(array('spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee"), 'activites', 'annee='.$annee );
126                echo '</tr></table>';
127                fin_page_association();
128        }
129}
130
131?>
Note: See TracBrowser for help on using the repository browser.