2 require 'xnet.inc.php';
4 define('NB_PER_PAGE', 25);
6 if ($globals->asso('pub') == 'public')
7 new_group_page('xnet/groupe/annuaire.tpl');
9 new_groupadmin_page('xnet/groupe/annuaire.tpl');
11 $page->assign('admin', may_update());
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 )
20 ORDER BY letter', $globals->asso('id'));
23 while (list($char, $nb) = $res->next()) {
26 if (Env
::has('initiale') && $char == strtoupper(Env
::get('initiale'))) {
30 $page->assign('alphabet', $alphabet);
31 $page->assign('nb_tot', $nb_tot);
33 $ofs = Env
::getInt('offset');
34 $tot = Env
::get('initiale') ?
$tot : $nb_tot;
35 $nbp = intval(($tot-1)/NB_PER_PAGE
);
38 $links['précédent'] = $ofs-1;
40 for ($i = 0; $i <= $nbp; $i++
) {
41 $links[(string)($i+
1)] = $i;
44 $links['suivant'] = $ofs+
1;
46 if (count($links)>1) {
47 $page->assign('links', $links);
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,
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
64 LIMIT {?},{?}", $globals->asso('id'), $ofs*NB_PER_PAGE
, NB_PER_PAGE
);
67 $page->assign('ann', $ann);