first reimport from platal
[platal.git] / htdocs.net / groupe / annuaire.php
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 ?>