2 require 'xnet.inc.php';
4 define('NB_PER_PAGE', 25);
6 require_once('xnet/evenements.php');
8 $evt = get_event_detail(Env
::get('eid'), Env
::get('item_id'));
10 // the event doesn't exist or doesn't belong to this assoif (!$evt)
12 redirect("evenements.php");
15 if ($evt['show_participants']) {
16 new_group_page('xnet/groupe/evt-admin.tpl');
18 new_groupadmin_page('xnet/groupe/evt-admin.tpl');
21 $admin = may_update();
23 // select a member from his mail
24 if ($admin && Env
::get('adm') && Env
::get('mail')) {
25 if (strpos(Env
::get('mail'), '@') === false
) {
26 $res = $globals->xdb
->query(
28 FROM groupex.membres AS m
29 INNER JOIN aliases AS a ON (a.id = m.uid)
30 WHERE a.alias = {?} AND m.asso_id = {?}",
31 Env
::get('mail'), $globals->asso('id'));
33 $res = $globals->xdb
->query(
35 FROM groupex.membres AS m
36 WHERE m.email = {?} AND m.asso_id = {?}",
37 Env
::get('mail'), $globals->asso('id'));
39 $member = $res->fetchOneCell();
40 if (!$member) $page->trig("Membre introuvable");
43 // change the price paid by a participant
44 if ($admin && Env
::get('adm') == 'prix' && $member) {
45 $globals->xdb
->execute("UPDATE groupex.evenements_participants SET paid = IF(paid + {?} > 0, paid + {?}, 0) WHERE uid = {?} AND eid = {?}",
46 strtr(Env
::get('montant'), ',', '.'),
47 strtr(Env
::get('montant'), ',', '.'),
48 $member, Env
::get('eid'));
51 // change the number of personns coming with a participant
52 if ($admin && Env
::get('adm') == 'nbs' && $member) {
53 $res = $globals->xdb
->query("SELECT paid FROM groupex.evenements_participants WHERE uid = {?} AND eid = {?}", $member, Env
::get('eid'));
54 $paid = $res->fetchOneCell();
56 foreach ($evt['moments'] as $m) if (Env
::has('nb'.$m['item_id'])) {
57 $nb = Env
::getInt('nb'.$m['item_id'], 0);
61 if (!$paid) $paid = 0;
62 $globals->xdb
->execute("REPLACE INTO groupex.evenements_participants VALUES ({?}, {?}, {?}, {?}, {?})",
63 Env
::get('eid'), $member, $m['item_id'], $nb, $paid);
66 $globals->xdb
->execute("DELETE FROM groupex.evenements_participants WHERE uid = {?} AND eid = {?} AND item_id = {?}", $member, Env
::get('eid'), $m['item_id']);
69 subscribe_lists_event(true
, $member, $evt['participant_list'], $evt['absent_list']);
71 $res = $globals->xdb
->query("SELECT uid FROM groupex.evenements_participants WHERE uid = {?} AND eid = {?}", $member, Env
::get('eid'));
72 $u = $res->fetchOneCell();
73 subscribe_lists_event($u, $member, $evt['participant_list'], $evt['absent_list']);
75 $evt = get_event_detail(Env
::get('eid'), Env
::get('item_id'));
78 $page->assign('admin', $admin);
79 $page->assign('evt', $evt);
80 $page->assign('url_page', Env
::get('PHP_SELF')."?eid=".Env
::get('eid').(Env
::has('item_id')?
("&item_id=".Env
::getInt('item_id')):''));
81 $page->assign('tout', !Env
::has('item_id'));
83 if (count($evt['moments'])) $page->assign('moments', $evt['moments']);
84 $page->assign('money', $evt['money']);
86 $tri = (Env
::get('order') == 'alpha' ?
'promo, nom, prenom' : 'nom, prenom, promo');
87 $whereitemid = Env
::has('item_id')?
('AND ep.item_id = '.Env
::getInt('item_id', 1)):'';
88 $res = $globals->xdb
->iterRow(
89 'SELECT UPPER(SUBSTRING(IF(u.nom IS NULL,m.nom,IF(u.nom_usage<>"", u.nom_usage, u.nom)), 1, 1)), COUNT(DISTINCT ep.uid)
90 FROM groupex.evenements_participants AS ep
91 INNER JOIN groupex.evenements AS e ON (ep.eid = e.eid)
92 LEFT JOIN groupex.membres AS m ON ( ep.uid = m.uid AND e.asso_id = m.asso_id)
93 LEFT JOIN auth_user_md5 AS u ON ( u.user_id = ep.uid )
94 WHERE ep.eid = {?} '.$whereitemid.'
95 GROUP BY UPPER(SUBSTRING(IF(u.nom IS NULL,m.nom,u.nom), 1, 1))', Env
::get('eid'));
99 while (list($char, $nb) = $res->next()) {
100 $alphabet[ord($char)] = $char;
102 if (Env
::has('initiale') && $char == strtoupper(Env
::get('initiale'))) {
107 $page->assign('alphabet', $alphabet);
109 $ofs = Env
::getInt('offset');
110 $tot = Env
::get('initiale') ?
$tot : $nb_tot;
111 $nbp = intval(($tot-1)/NB_PER_PAGE
);
114 $links['précédent'] = $ofs-1;
116 for ($i = 0; $i <= $nbp; $i++
) {
117 $links[(string)($i+
1)] = $i;
120 $links['suivant'] = $ofs+
1;
122 if (count($links)>1) {
123 $page->assign('links', $links);
126 $ini = Env
::has('initiale') ?
'AND IF(u.nom IS NULL,m.nom,IF(u.nom_usage<>"", u.nom_usage, u.nom)) LIKE "'.addslashes(Env
::get('initiale')).'%"' : '';
128 $participants = get_event_participants(Env
::get('eid'), Env
::get('item_id'), $ini, $tri, "LIMIT ".($ofs*NB_PER_PAGE
).", ".NB_PER_PAGE
, $evt['money'] && $admin, $evt['paiement_id']);
130 if ($evt['paiement_id']) {
131 $res = $globals->xdb
->iterator(
132 "SELECT IF(u.nom_usage<>'', u.nom_usage, u.nom) AS nom, u.prenom,
133 u.promo, a.alias AS email, t.montant
134 FROM {$globals->money->mpay_tprefix}transactions AS t
135 INNER JOIN auth_user_md5 AS u ON(t.uid = u.user_id)
136 INNER JOIN aliases AS a ON (a.id = t.uid AND a.type='a_vie' )
137 LEFT JOIN groupex.evenements_participants AS ep ON(ep.uid = t.uid AND ep.eid = {?})
138 WHERE t.ref = {?} AND ep.uid IS NULL",
139 $evt['eid'], $evt['paiement_id']);
140 $page->assign('oublis', $res->total());
141 $page->assign('oubliinscription', $res);
145 $page->assign('participants', $participants);