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

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

hot fixes r64577 and r66942

File size: 6.8 KB
Line 
1<?php
2/***************************************************************************\
3 *  Associaspip, extension de SPIP pour gestion d'associations
4 *
5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
7 *
8 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
9\***************************************************************************/
10
11if (!defined('_ECRIRE_INC_VERSION'))
12        return;
13
14function exec_activites() {
15        if (!autoriser('voir_profil', 'association')) {
16                include_spip('inc/minipres');
17                echo minipres();
18        } else {
19                include_spip ('inc/navigation_modules');
20                $id_evenement = association_passeparam_id('evenement');
21                list($id_periode, $critere_periode) = association_passeparam_periode('debut', 'evenement', $id_evenement);
22                if ($id_evenement) { // la presence de ce parametre interdit la prise en compte d'autres (a annuler donc si presents dans la requete)
23                        $id_mot = $incription = '';
24                } else { // on peut prendre en compte les filtres ; on recupere les parametres de :
25                        $id_mot = association_recuperer_entier('mot'); // id du mot cle
26                        $inscription = _request('inscription');
27                }
28                onglets_association('titre_onglet_activite', 'activites');
29                // TOTAUX : nombre d'activites de la periode en cours selon iscriptions
30                $avec_inscrits = sql_countsel('spip_asso_activites', sql_in_select('id_evenement', 'id_evenement', 'spip_evenements', $critere_periode), 'id_evenement');
31                echo association_totauxinfos_effectifs('activites', array(
32                        'pair'=>array( 'activites_sans_inscrits', (sql_countsel('spip_evenements', $critere_periode)-$avec_inscrits), ),
33                        'impair'=>array( 'activites_avec_inscrits', $avec_inscrits, ),
34                ));
35                // STATS : places et participations pour la periode en cours
36                echo association_totauxinfos_stats('participations_par_personne_par_activite', 'activites AS a INNER JOIN spip_evenements AS e ON a.id_evenement=e.id_evenement', array('entete_quantite'=>'quantite','entete_montant'=>'prix_activite',), $critere_periode);
37                // TOTAUX : montants des participations pour la periode
38                echo association_totauxinfos_montants('activites', sql_getfetsel('SUM(prix_activite) AS somme_recettes', 'spip_asso_activites AS a INNER JOIN spip_evenements AS e ON a.id_evenement=e.id_evenement', $critere_periode), 0);
39                // datation et raccourci vers la gestion des evenements
40                if ( test_plugin_actif('SIMPLECAL') ) { // gestion des evenements avec Simple Calendrier
41                        raccourcis_association(array(), array(
42                                'evenements' => array('simplecal-logo-16.png', 'evenement_tous'),
43                        ) );
44                } elseif ( test_plugin_actif('AGENDA') ) { // gestion des evenements avec Agenda 2
45                        raccourcis_association(array(), array(
46                                'evenements' => array('agenda-evenements-16.png', 'agenda_evenements'),
47                        ) );
48                } else { // pas de bloc de raccourcis
49                        echo association_date_du_jour();
50                        echo fin_boite_info(TRUE);
51                }
52                debut_cadre_association('activites.gif', 'activite_titre_toutes_activites');
53                // FILTRES
54                $filtre_motscles = '<select name="mot" onchange="form.submit()">';
55                $filtre_motscles .= '<option value="">' ._T('asso:entete_tous') .'</option>';
56                $query_groupes = sql_select('id_groupe, titre', 'spip_groupes_mots', "tables_liees LIKE '%evenements%'");
57                while($data_groupes = sql_fetch($query_groupes)) {
58                        $filtre_motscles .= '<optgroup label="'.$data_groupes['titre'].'">';
59                        $query_mots = sql_select('id_mot, titre', 'spip_mots', 'id_groupe='.$data_groupes['id_groupe']);
60                        while($data_mots = sql_fetch($query_mots)) {
61                                $filtre_motscles .= '<option value="'.$data_mots['id_mot'].'"';
62                                $filtre_motscles .= ($id_mot==$data_mots['id_mot']?' selected="selected"':'');
63                                $filtre_motscles .= '>'.$data_mots['titre'].'</option>';
64                        }
65                        $filtre_motscles .= '</optgroup>';
66                }
67                $filtre_motscles .= '</select>';
68                $filtre_incrits = '<select name="inscription" onchange="form.submit()">';
69                $filtre_incrits .= '<option value="">' ._T('asso:entete_tous') .'</option>';
70                $filtre_incrits .= '<option value="avec"';
71                $filtre_incrits .= ($inscription=='avec'?' selected="selected"':'');
72                $filtre_incrits .= '>'. _T('asso:activites_avec_inscrits') .'</option>';
73                $filtre_incrits .= '<option value="sans"';
74                $filtre_incrits .= ($inscription=='sans'?' selected="selected"':'');
75                $filtre_incrits .= '>'. _T('asso:activites_sans_inscrits') .'</option>';
76                $filtre_incrits .= '</select>';
77                filtres_association(array(
78                        'periode' => array($id_periode, 'evenements', 'debut'),
79#                       'id' => $id_evenement,
80                ), 'activites', array(
81                        'mot' => $filtre_motscles,
82                        'inscription' => $filtre_incrits,
83                ));
84                // TABLEAU
85                $q_from = 'spip_evenements AS e LEFT JOIN spip_asso_activites AS a ON e.id_evenement=a.id_evenement';
86                $q_where = $critere_periode;
87                if ($id_mot) {
88                        $mc_sel = ', m.id_mot AS motact';
89                        $q_from .= ' 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';
90                        //$q_where .= " AND (m.id_mot=$id_mot OR m.titre LIKE '$mot' OR m.titre IS NULL) ";
91                        $q_where .= " AND m.id_mot=$id_mot";
92                } else {
93                        $mc_sel = '';
94                }
95                if ($inscription) {
96                        $q_having = 'inscriptions'. ($inscription=='avec'?'>':'=') .'0';
97                } else {
98                        $q_having = '';
99                }
100                echo association_bloc_listehtml(
101                        array("e.id_evenement, e.date_debut, e.date_fin, e.titre  AS intitule, e.lieu,  COUNT(a.id_activite) AS inscriptions, SUM(a.quantite) AS quantites, SUM(a.montant) AS montants, CASE COUNT(a.id_activite) WHEN 0 THEN 0 ELSE 1 END AS participations $mc_sel", $q_from, $q_where, 'e.id_evenement', 'date_debut DESC, date_fin DESC', sql_asso1page(), $q_having), // requete
102                        array(
103                                'id_evenement' => array('asso:entete_id', 'entier'),
104                                'date_debut' => array('agenda:evenement_date_du', 'date', 'dtstart'),
105                                'date_fin' => array('agenda:evenement_date_au', 'date', 'dtend'),
106                                'intitule' => array('asso:entete_intitule', 'texte', '', '', 'summary'),
107                                'lieu' => array('agenda:evenement_lieu', 'texte', '', '', 'location'),
108                                'inscriptions' => array('asso:entete_nombre', 'entier'),
109                                'quantites' => array('asso:entete_quantite', 'entier'),
110                                'montants' => array('asso:entete_montant', 'prix', 'fee'),
111                        ), // entetes et formats des donnees
112                        autoriser('voir_activites', 'association') ? array(
113                                array('act', 'activite_bouton_ajouter_inscription', 'creer-12.gif', 'edit_activite', 'id_evenement=$$'),
114                                array('list', 'inscrits_activite', 'id=$$'),
115                        ) : array(), // boutons d'action
116                        'id_evenement', // champ portant la cle des lignes et des boutons
117                        array('pair vevent', 'impair vevent'), 'participations', $id_evenement
118                );
119                //SOUS-PAGINATION
120                echo association_selectionner_souspage(array($q_from, $q_where, 'e.id_evenement', $q_having), 'activites&'.($GLOBALS['association_metas']['exercices']?'exercice':'annee')."=$id_periode".($mot?"&mot=$mot":'').($inscription?"&inscription='$inscription'":'') );
121                fin_page_association();
122        }
123}
124
125?>
Note: See TracBrowser for help on using the repository browser.