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

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

harmonisation, correction et extension du filtrage des listes principales

File size: 8.0 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');
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_libelles = $liste_effectifs = array();
40                $liste_libelles['pair'] = _T('asso:activites_avec_inscrits');
41                $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") );
42                $liste_libelles['impair'] = _T('asso:activites_sans_inscrits');
43                $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");
44                $liste_effectifs['impair'] = sql_countsel('spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee")-$liste_effectifs['pair']; // le monde a l'envers... mais ca fonctionne
45                echo totauxinfos_effectifs('activites', $liste_libelles, $liste_effectifs);
46/*
47                // STATS sur toutes les participations
48                echo totauxinfos_stats('participations_par_personne_par_activite', 'activites', array('activite_entete_inscrits'=>'inscrits','entete_montant'=>'montant',), "DATE_FORMAT(date, '%Y')=$annee");
49                // TOTAUX : montants des participations durant l'annee en cours
50                $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']) );
51                echo totauxinfos_montants('activites', $data['somme_recettes'], $data['somme_depenses']);
52*/
53                // datation
54                echo association_date_du_jour();
55                echo fin_boite_info(true);
56                //!\ il manque le blo des raccourcis !
57                debut_cadre_association('activites.gif','activite_titre_toutes_activites');
58                // FILTRES
59                echo '<form method="get" action="'.generer_url_ecrire('activites').'">';
60                echo "\n<input type='hidden' name='exec' value='activites' />";
61                echo "\n<table width='100%' class='asso_tablo_filtres'><tr>";
62                echo '<td id="filtre_annee">'. association_selectionner_annee($annee, 'evenements', 'debut') .'</td>';
63#               echo '<td id="filtre_id">'. association_selectionner_id($id_evenement) .'</td>';
64                if (test_plugin_actif('AGENDA')) { /* le plugin "Agenda 2" peut associer des mots-cles aux evenements : les proposer comme critere de filtrage */
65                        if ($id_mot) {
66                                $mc_sel = ', M.id_mot AS motact';
67                                $mc_join = ' LEFT JOIN spip_mots_evenements AS A ON  A.id_evenement=E.id_evenement LEFT JOIN spip_mots AS M ON A.id_mot=M.id_mot';
68                                //$mc_where = "AND (M.id_mot=$id_mot OR M.titre like '$mot' OR M.titre IS NULL)";
69                                $mc_where = "AND M.id_mot=$id_mot";
70                        } else {
71                                $mc_sel = $mc_join = $mc_where = '';
72                        }
73                        echo '<td id="filtre_mot">';
74                        echo '<select name="mot" onchange="form.submit()">';
75                        echo '<option value="">'._T('asso:entete_tous').'</option>';
76                        $query_groupes = sql_select('id_groupe, titre', 'spip_groupes_mots', "tables_liees LIKE '%evenements%'");
77                        while($data_groupes = sql_fetch($query_groupes)) {
78                                echo '<optgroup label="'.$data_groupes['titre'].'">';
79                                $query_mots = sql_select('id_mot, titre', 'spip_mots', 'id_groupe='.$data_groupes['id_groupe']);
80                                while($data_mots = sql_fetch($query_mots)) {
81                                        echo '<option value="'.$data_mots['id_mot'].'"';
82                                        if ($id_mot==$data_mots['id_mot']) {
83                                                echo ' selected="selected"';
84                                        }
85                                        echo '> '.$data_mots['titre'].'</option>';
86                                }
87                                echo '</optgroup>';
88                        }
89                        echo '</select></td>';
90                }
91                echo '<noscript><td><input type="submit" value="'._T('asso:bouton_filtrer').'" /></noscript></td>';
92                echo '</tr></table></form>';
93                //TABLEAU
94                echo "<table width='100%' class='asso_tablo' id='asso_tablo_activites'>\n";
95                echo "<thead>\n<tr>";
96                echo '<th>'. _T('asso:entete_id') .'</th>';
97                echo '<th>'. _T('asso:entete_date') .'</th>';
98                echo '<th>'. _T('asso:activite_entete_heure') .'</th>';
99                echo '<th>'. _T('asso:entete_intitule') .'</th>';
100                echo '<th>'. _T('asso:activite_entete_lieu') .'</th>';
101                echo '<th>'. _T('asso:activite_entete_inscrits') .'</th>';
102                echo '<th colspan="3" class="actions">'. _T('asso:entete_action') .'</th>';
103                echo "</tr>\n</thead><tbody>";
104                $max_par_page = 30;
105                $debut = intval(_request('debut'));
106                if (!$debut) {
107                        $debut = 0;
108                }
109                $query = sql_select('*, 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', "$debut,$max_par_page");
110                while ($data = sql_fetch($query)) {
111                        $inscrits = sql_fetsel('SUM(inscrits) AS total', 'spip_asso_activites', 'id_evenement='.$data['id_evenement']);
112                        echo '<tr class="'. ($inscrits['total']?'pair':'impair') . (($id_evenement==$data['id_evenement'])?' surligne':'') .'" id="'.$data['id_evenement'].'">';
113                        echo '<td class="integer">'.$data['id_evenement'].'</td>';
114                        echo '<td class="date">'. association_datefr($data['date_debut'],'dtstart') .'</td>';
115                        echo '<td class="date">'. substr($data['date_debut'],10,6) .'</td>';
116                        echo '<td class="text">'.$data['intitule'].'</td>';
117                        echo '<td class="text">'.$data['lieu'].'</td>';
118                        echo '<td class="integer">'.$inscrits['total'].'</td>';
119                        echo '<td class="actions">'. association_bouton('activite_bouton_modifier_article', 'edit-12.gif', 'articles', 'id_article='.$data['id_article']) . '</td>';
120                        echo '<td class="actions">'. association_bouton('activite_bouton_ajouter_inscription', 'creer-12.gif', 'edit_activite', 'id_evenement='.$data['id_evenement']) . '</td>';
121                        echo '<td class="actions">'. association_bouton('activite_bouton_voir_liste_inscriptions', 'voir-12.png', 'voir_activites', 'id='.$data['id_evenement']) . '</td>';
122                        echo "</tr>\n";
123                }
124                echo "</tbody>\n</table>\n";
125                echo "\n<table width='100%'>\n";
126                //SOUS-PAGINATION
127                echo "<table class='asso_tablo_filtres'><tr>\n<td width='40%'><p class='pagination'>";
128                $nombre_selection = sql_countsel('spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee");
129                $pages = ceil($nombre_selection/$max_par_page);
130                if ($pages==1) {
131                        echo '';
132                } else {
133                        for ($i=0; $i<$pages; $i++) {
134                                $position = $i*$max_par_page;
135                                if ($position==$debut) {
136                                        echo ' <strong>'.$position.' </strong> ';
137                                } else {
138                                        echo '<a href="'.generer_url_ecrire('activites','annee='.$annee.'&debut='.$position.'&imputation='.$imputation).'">'.$position.'</a>  ';
139                                }
140                        }
141                }
142                echo '</p></td></tr></table>';
143                fin_page_association();
144        }
145}
146
147?>
Note: See TracBrowser for help on using the repository browser.