37 : void
38 {
40
41 $usr_ids_to_request = array_diff($usr_ids, self::$requested_usr_ids);
42 self::$requested_usr_ids = array_merge(self::$requested_usr_ids, $usr_ids_to_request);
43 self::$requested_usr_ids_key_map = array_flip(self::$requested_usr_ids);
44
45 if ($usr_ids_to_request) {
46 $in =
$DIC->database()->in(
'ud.usr_id', $usr_ids_to_request,
false,
'integer');
48 SELECT ud.usr_id, login, firstname, lastname, title, gender,
49 pprof.value public_profile,pup.value public_upload, pupgen.value public_gender
50 FROM usr_data ud
51 LEFT JOIN usr_pref pprof ON pprof.usr_id = ud.usr_id AND pprof.keyword = %s
52 LEFT JOIN usr_pref pupgen ON pupgen.usr_id = ud.usr_id AND pupgen.keyword = %s
53 LEFT JOIN usr_pref pup ON pup.usr_id = ud.usr_id AND pup.keyword = %s
54 WHERE $in
55 ";
56
59 ['text', 'text', 'text'],
60 ['public_profile', 'public_gender', 'public_upload']
61 );
62
63 while ($row =
$DIC->database()->fetchAssoc(
$res)) {
65 $user->setId((int) $row['usr_id']);
66 $user->setLogin((string) $row['login']);
67 $user->setGender((string) $row['gender']);
68 $user->setTitle((string) $row['title']);
69 $user->setFirstname((string) $row['firstname']);
70 $user->setLastname((string) $row['lastname']);
71 $user->setPref('public_profile', $row['public_profile']);
72 $user->setPref('public_upload', $row['public_upload']);
73 $user->setPref('public_gender', $row['public_gender']);
74
75 self::$user_instances[(
int) $row[
'usr_id']] = $user;
76 }
77 }
78 }