0337d704 |
1 | <?php |
2 | require 'xnet.inc.php'; |
3 | |
4 | define('NB_PER_PAGE', 25); |
5 | |
6 | if ($globals->asso('pub') == 'public') |
7 | new_group_page('xnet/groupe/annuaire.tpl'); |
8 | else |
9 | new_groupadmin_page('xnet/groupe/annuaire.tpl'); |
10 | |
11 | $page->assign('admin', may_update()); |
12 | |
13 | $tri = (Env::get('order') == 'alpha' ? 'promo, nom, prenom' : 'nom, prenom, promo'); |
14 | $res = $globals->xdb->iterRow( |
15 | 'SELECT UPPER(SUBSTRING(IF(m.origine="X",IF(u.nom_usage<>"", u.nom_usage, u.nom),m.nom), 1, 1)) as letter, COUNT(*) |
16 | FROM groupex.membres AS m |
17 | LEFT JOIN auth_user_md5 AS u ON ( u.user_id = m.uid ) |
18 | WHERE asso_id = {?} |
19 | GROUP BY letter |
20 | ORDER BY letter', $globals->asso('id')); |
21 | $alphabet = array(); |
22 | $nb_tot = 0; |
23 | while (list($char, $nb) = $res->next()) { |
24 | $alphabet[] = $char; |
25 | $nb_tot += $nb; |
26 | if (Env::has('initiale') && $char == strtoupper(Env::get('initiale'))) { |
27 | $tot = $nb; |
28 | } |
29 | } |
30 | $page->assign('alphabet', $alphabet); |
31 | $page->assign('nb_tot', $nb_tot); |
32 | |
33 | $ofs = Env::getInt('offset'); |
34 | $tot = Env::get('initiale') ? $tot : $nb_tot; |
35 | $nbp = intval(($tot-1)/NB_PER_PAGE); |
36 | $links = array(); |
37 | if ($ofs) { |
38 | $links['précédent'] = $ofs-1; |
39 | } |
40 | for ($i = 0; $i <= $nbp; $i++) { |
41 | $links[(string)($i+1)] = $i; |
42 | } |
43 | if ($ofs < $nbp) { |
44 | $links['suivant'] = $ofs+1; |
45 | } |
46 | if (count($links)>1) { |
47 | $page->assign('links', $links); |
48 | } |
49 | |
50 | $ini = Env::has('initiale') ? 'AND IF(m.origine="X",IF(u.nom_usage<>"", u.nom_usage, u.nom),m.nom) LIKE "'.addslashes(Env::get('initiale')).'%"' : ''; |
51 | $ann = $globals->xdb->iterator( |
52 | "SELECT IF(m.origine='X',IF(u.nom_usage<>'', u.nom_usage, u.nom) ,m.nom) AS nom, |
53 | IF(m.origine='X',u.prenom,m.prenom) AS prenom, |
54 | IF(m.origine='X',u.promo,'extérieur') AS promo, |
55 | IF(m.origine='X',a.alias,m.email) AS email, |
56 | IF(m.origine='X',FIND_IN_SET('femme', u.flags),0) AS femme, |
57 | m.perms='admin' AS admin, |
58 | m.origine='X' AS x |
59 | FROM groupex.membres AS m |
60 | LEFT JOIN auth_user_md5 AS u ON ( u.user_id = m.uid ) |
61 | LEFT JOIN aliases AS a ON ( a.id = m.uid AND a.type='a_vie' ) |
62 | WHERE m.asso_id = {?} $ini |
63 | ORDER BY $tri |
64 | LIMIT {?},{?}", $globals->asso('id'), $ofs*NB_PER_PAGE, NB_PER_PAGE); |
65 | |
66 | |
67 | $page->assign('ann', $ann); |
68 | |
69 | $page->run(); |
70 | |
71 | ?> |