X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Flists%2Flists.inc.php;h=0a3cfd58db95bd1e7173a5a638d5e50715a15185;hb=02d94468c28e1242394fe7e365563b00f6b74d8f;hp=e327c2248a919a0102c50778a7e9046aae708918;hpb=30fc8ee73a7f6b03645fd38ee12c2f86083b873c;p=platal.git diff --git a/modules/lists/lists.inc.php b/modules/lists/lists.inc.php index e327c22..0a3cfd5 100644 --- a/modules/lists/lists.inc.php +++ b/modules/lists/lists.inc.php @@ -1,6 +1,6 @@ $mem); } } else { - $res = XDB::query('SELECT prenom, nom FROM groupex.membres WHERE email={?}', $mem); - if (list($prenom, $nom) = $res->fetchOneRow()) { - $key = $tri_promo ? 0 : strtoupper($nom{0}); - $membres[$key][$nom.$m] = Array('n' => "$prenom $nom", 'l' => $mem, 'p' => (!$tri_promo ? 'non-X' : null)); + $res = XDB::query('SELECT m2.uid, + IF(m2.origine="X", u.prenom, m1.prenom) AS prenom, + IF(m2.origine="X", u.nom, m1.nom) AS nom, + IF(m2.origine="X", u.promo, "non-X") AS promo + FROM groupex.membres AS m1 + LEFT JOIN groupex.membres AS m2 ON(m1.email=m2.email AND m2.asso_id={?}) + LEFT JOIN auth_user_md5 AS u ON(m2.origine = "X" AND m2.uid = u.user_id) + WHERE m1.email={?}', $globals->asso('id'), $mem); + if (list($uid, $prenom, $nom, $promo) = $res->fetchOneRow()) { + $key = $tri_promo ? ($promo != 'non-X' ? $promo : 0) : strtoupper($nom{0}); + if ($tri_promo) { + $promo = null; + } + $membres[$key][$nom.$m] = Array('n' => "$prenom $nom", 'l' => $mem, 'x' => $uid, 'p' => $promo); } else { $membres[0][] = Array('l' => $mem, 'p' => (!$tri_promo ? 'non-X' : null)); } @@ -68,14 +78,18 @@ function list_sort_members(&$members, $tri_promo = true) { function _list_header_decode($charset, $c, $str) { $s = ($c == 'Q' || $c == 'q') ? quoted_printable_decode($str) : base64_decode($str); - $s = iconv($charset, 'iso-8859-15', $s); + $s = iconv($charset, 'UTF-8', $s); return str_replace('_', ' ', $s); } function list_header_decode($value) { + if (!$value) { + return "[pas de sujet]"; + } $val = preg_replace('/(=\?[^?]*\?[BQbq]\?[^?]*\?=) (=\?[^?]*\?[BQbq]\?[^?]*\?=)/', '\1\2', $value); return preg_replace('/=\?([^?]*)\?([BQbq])\?([^?]*)\?=/e', '_list_header_decode("\1", "\2", "\3")', $val); } // }}} +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>