From 8cc7b18c15394fc3d1fda5835bce1f925467ec68 Mon Sep 17 00:00:00 2001 From: "Pierre Habouzit (MadCoder" Date: Mon, 13 Dec 2004 16:30:38 +0000 Subject: [PATCH] refactor some code in lists + associated tests git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-86 --- htdocs/TESTS/index.php | 2 +- htdocs/TESTS/xorg_user.php | 2 +- htdocs/listes/admin.php | 30 +++--------------------------- htdocs/listes/members.php | 35 ++--------------------------------- include/lists.inc.php | 39 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 46 insertions(+), 62 deletions(-) diff --git a/htdocs/TESTS/index.php b/htdocs/TESTS/index.php index 45e774e..41eef5d 100644 --- a/htdocs/TESTS/index.php +++ b/htdocs/TESTS/index.php @@ -25,7 +25,6 @@ class MyReporter extends SimpleReporter { } } -$reporter = new MyReporter; echo << @@ -44,6 +43,7 @@ echo <<UnitTestCase('XOrg Users Test'); + $this->UnitTestCase('Users functions'); } function test_get_user_login() { diff --git a/htdocs/listes/admin.php b/htdocs/listes/admin.php index 65c3547..70a98dd 100644 --- a/htdocs/listes/admin.php +++ b/htdocs/listes/admin.php @@ -67,33 +67,9 @@ if(list($det,$mem,$own) = $client->get_members($liste)) { if (!$det['own'] && !has_perms()) { $page->kill("La liste n'existe pas ou tu n'as pas le droit de l'administrer"); } - $membres = Array(); - foreach($mem as $member) { - if(preg_match('/^([^.]*\.([^.]*)\.\d\d\d\d)@'.$globals->mail->domain.'$/', $member[1], $matches)) { - $key = strtoupper($matches[2]{0}); - $membres[$key][$matches[2].$matches[1]] = Array('n' => $member[0], 'l' => $matches[1], 'a' => $member[1]); - } else { - $membres[0][] = Array('l' => $member[1], 'a' => $member[1]); - } - } - foreach($membres as $key=>$val) ksort($membres[$key]); - ksort($membres); - - $moderos = Array(); - foreach($own as $owner) { - list($m) = split('@',$owner); - $res = $globals->db->query("SELECT CONCAT(prenom, ' ', nom), promo - FROM auth_user_md5 AS u - INNER JOIN aliases AS a ON u.user_id = a.id - WHERE a.alias = '$m'"); - if(list($nom, $promo) = mysql_fetch_row($res)) { - $moderos[$promo][] = Array('n' => $nom, 'l' => $m, 'a'=>$owner); - } else { - $moderos[0][] = Array('l' => $owner, 'a' => $owner); - } - mysql_free_result($res); - } - ksort($moderos); + + $membres = list_sort_members($mem, $tri_promo); + $moderos = list_sort_owners($own, $tri_promo); $page->assign_by_ref('details', $det); $page->assign_by_ref('members', $membres); diff --git a/htdocs/listes/members.php b/htdocs/listes/members.php index 1b82a12..5e61e60 100644 --- a/htdocs/listes/members.php +++ b/htdocs/listes/members.php @@ -41,39 +41,8 @@ $members = $client->get_members($liste); $tri_promo = empty($_REQUEST['alpha']); if(list($det,$mem,$own) = $members) { - $membres = Array(); - foreach($mem as $member) { - list($m) = split('@',$member[1]); - $res = $globals->db->query("SELECT prenom,IF(epouse='', nom, epouse), promo - FROM auth_user_md5 AS u - INNER JOIN aliases AS a ON u.user_id = a.id - WHERE a.alias = '$m'"); - if(list($prenom, $nom, $promo) = mysql_fetch_row($res)) { - $key = $tri_promo ? $promo : strtoupper($nom{0}); - $membres[$key][$nom.$m] = Array('n' => "$prenom $nom", 'l' => $m); - } else { - $membres[0][] = Array('l' => $member[1]); - } - mysql_free_result($res); - } - ksort($membres); - foreach($membres as $key=>$val) ksort($membres[$key]); - - $moderos = Array(); - foreach($own as $owner) { - list($m) = split('@',$owner); - $res = $globals->db->query("SELECT IF(epouse='', CONCAT(prenom, ' ', nom), CONCAT(prenom, ' ', epouse)), promo - FROM auth_user_md5 AS u - INNER JOIN aliases AS a ON u.user_id = a.id - WHERE a.alias = '$m'"); - if(list($nom, $promo) = mysql_fetch_row($res)) { - $moderos[$promo][] = Array('n' => $nom, 'l' => $m); - } else { - $moderos[0][] = Array('l' => $owner); - } - mysql_free_result($res); - } - ksort($moderos); + $membres = list_sort_members($mem, $tri_promo); + $moderos = list_sort_owners($own, $tri_promo); $page->assign_by_ref('details', $det); $page->assign_by_ref('members', $membres); diff --git a/include/lists.inc.php b/include/lists.inc.php index 5111089..75d3b4a 100644 --- a/include/lists.inc.php +++ b/include/lists.inc.php @@ -37,6 +37,45 @@ function &lists_xmlrpc($uid, $pass, $fqdn=null) } // }}} +// {{{ function list_sort_owners +function list_sort_owners(&$members, $tri_promo = true) { + global $globals; + + $membres = Array(); + + foreach($members as $mem) { + list($m, $dom) = split('@',$mem); + if ($dom == $globals->mail->domain || $dom == $globals->mail->domain2) { + $res = $globals->db->query("SELECT prenom,IF(epouse='', nom, epouse), promo + FROM auth_user_md5 AS u + INNER JOIN aliases AS a ON u.user_id = a.id + WHERE a.alias = '$m'"); + if(list($prenom, $nom, $promo) = mysql_fetch_row($res)) { + $key = $tri_promo ? $promo : strtoupper($nom{0}); + $membres[$key][$nom.$m] = Array('n' => "$prenom $nom", 'l' => $m); + } else { + $membres[0][] = Array('l' => $mem); + } + mysql_free_result($res); + } else { + $membres[0][] = Array('l' => $mem); + } + } + + ksort($membres); + foreach($membres as $key=>$val) ksort($membres[$key]); + return $membres; +} + +// }}} +// {{{ function list_sort_members + +function list_sort_members(&$members, $tri_promo = true) { + $pi1 = create_function('$arr', 'return $arr[1];'); + return list_sort_owners(array_map($pi1, $members), $tri_promo); +} + +// }}} // vim:set et sw=4 sts=4 sws=4 foldmethod=marker: ?> -- 2.1.4