- }
- else{
- $res = XDB::iterRow(
- "SELECT a.naissance AS age,
- adr.adr1, adr.adr2, adr.adr3,
- adr.postcode, adr.city, adr.country,
- adr.uid, adr.adrid
- FROM auth_user_md5 AS a
- INNER JOIN auth_user_quick AS q USING (user_id)
- LEFT JOIN adresses AS adr ON(adr.uid = a.user_id)
- WHERE a.matricule = {?} AND
- NOT FIND_IN_SET('pro', adr.statut)
- ORDER BY NOT FIND_IN_SET('active', adr.statut),
- FIND_IN_SET('res-secondaire', adr.statut),
- NOT FIND_IN_SET('courrier', adr.statut)", $params[1]);
- //traitement des adresses si necessaire
- if(list($age, $adr['adr1'], $adr['adr2'], $adr['adr3'], $adr['cp'], $adr['ville'],
- $adr['pays'], $uid, $adr['adrid']) = $res->next())
- {
- $sql = XDB::query("SELECT display_tel
- FROM profile_phones
- WHERE uid ={?} AND link_type = 'user' AND tel_type = 'mobile'
- LIMIT 1", $uid);
- if ($sql->numRows()>0) {
+ } else {
+ $res = XDB::iterRow("SELECT p.birthdate, pa.text, GROUP_CONCAT(pace3.short_name), GROUP_CONCAT(pace2.short_name),
+ GROUP_CONCAT(pace1.short_name), p.pid, pa.id
+ FROM profiles AS p
+ LEFT JOIN profile_addresses AS pa ON (pa.pid = p.pid)
+ LEFT JOIN profile_addresses_components AS pc ON (pa.pid = pc.pid AND pa.jobid = pc.jobid AND pa.groupid = pc.groupid
+ AND pa.type = pc.type AND pa.id = pc.id)
+ LEFT JOIN profile_addresses_components_enum AS pace1 ON (FIND_IN_SET(\'country\', pace1.types) AND pace1.id = pc.component_id)
+ LEFT JOIN profile_addresses_components_enum AS pace2 ON (FIND_IN_SET(\'locality\', pace2.types) AND pace2.id = pc.component_id)
+ LEFT JOIN profile_addresses_components_enum AS pace3 ON (FIND_IN_SET(\'postal_code\', pace3.types) AND pace3.id = pc.component_id)
+ WHERE p.xorg_id = {?} AND NOT FIND_IN_SET('job', pa.flags)
+ ORDER BY NOT FIND_IN_SET('current', pa.flags),
+ FIND_IN_SET('secondary', pa.flags),
+ NOT FIND_IN_SET('mail', pa.flags)
+ GROUP BY pa.pid, pa.jobid, pa.groupid, pa.id, pa.type",
+ $params[1]);
+ // Process the addresses we got.
+ if(list($age, $text, $adr['cp'], $adr['ville'],
+ $adr['pays'], $pid, $adr['adrid']) = $res->next()) {
+ list($adr['adr1'], $adr['adr2'], $adr['adr3']) =
+ explode("\n", Geocoder::getFirstLines($text, $adr['cp'], 3));
+ $sql = XDB::query("SELECT display_tel
+ FROM profile_phones
+ WHERE pid = {?} AND link_type = 'user' AND tel_type = 'mobile'
+ LIMIT 1", $pid);
+ if ($sql->numRows() > 0) {