- foreach($members as $mem) {
- $user = User::getSilent($mem);
- if (!$user) {
- $membres[0][] = array('l' => $mem, 'p' => (!$tri_promo ? 'inconnue' : null), 'n' => null, 'x' => null, 'b' => null);
+ $members = array();
+
+ $uf = new UserFilter(new UFC_Email($emails));
+ $it = $uf->iterUsers();
+ while ($u = $it->next()) {
+ $members[$u->uid] = array(
+ 'user' => $u,
+ 'profile' => null,
+ 'email' => $u->forlifeEmail());
+ $seen[] = $u->forlifeEmail();
+ }
+
+ $pf = new ProfileFilter(new UFC_Email($emails));
+ $it = $pf->iterProfiles();
+ if ($it) {
+ while ($p = $it->next()) {
+ $members[$p->owner_id]['user']->setPrefetchedProfile($p);
+ $members[$p->owner_id]['profile'] = $p;
+ }
+ }
+
+ foreach ($emails as $email) {
+ if (!in_array($email, $seen)) {
+ $seen[] = $email;
+ $members[$email] = array('user' => null, 'profile' => null,
+ 'email' => $email);
+ }
+ }
+
+ // $members is now an array of uid => {'user': User or null, 'email': $email}
+
+ // $sorted_members is an array of $sortKey1 => $sortKey2 => {User, email}
+ $sorted_members = array();
+
+ foreach($members as $member) {
+ if (is_null($member['user'])) {
+ $category = 'AAAAA';
+ $name = $member['email'];