From: Stéphane Jacob Date: Mon, 20 Dec 2010 20:41:21 +0000 (+0100) Subject: Improves AddressesView to retrieve all postal addresses from the database. X-Git-Tag: xorg/1.0.2~64 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=1319b09e10cd1ad6a18762f71aee51796fc52641;p=platal.git Improves AddressesView to retrieve all postal addresses from the database. Signed-off-by: Stéphane Jacob --- diff --git a/core b/core index 798c1f4..70c0db4 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 798c1f4b15f14569c1f37d848db93ec4f65518b6 +Subproject commit 70c0db4f1da79409e3dac0660fe97561fc15e87a diff --git a/include/userset.inc.php b/include/userset.inc.php index 48c07b0..c648005 100644 --- a/include/userset.inc.php +++ b/include/userset.inc.php @@ -361,22 +361,19 @@ class AddressesView implements PlView public function apply(PlPage &$page) { - $res = $this->set->get(new PlLimit()); + $pids = $this->set->getIds(new PlLimit()); $visibility = new ProfileVisibility(ProfileVisibility::VIS_AX); pl_content_headers('text/x-csv'); $csv = fopen('php://output', 'w'); fputcsv($csv, array('adresses'), ';'); - foreach ($res as $profile) { - $addresses = $profile->getAddresses(Profile::ADDRESS_POSTAL); - if (!empty($addresses)) { - foreach ($addresses as $address) { - if ($visibility->isVisible($address->pub)) { - fputcsv($csv, array($profile->public_name, $address->postalText), ';'); - break; - } - } - } + $res = XDB::query('SELECT pd.public_name, pa.postalText + FROM profile_addresses AS pa + INNER JOIN profile_display AS pd ON (pd.pid = pa.pid) + WHERE pa.type = \'home\' AND pa.pub IN (\'public\', \'ax\') AND FIND_IN_SET(\'mail\', pa.flags) AND pa.pid IN {?} + GROUP BY pa.pid', $pids); + foreach ($res->fetchAllAssoc() as $item) { + fputcsv($csv, $item, ';'); } fclose($csv); exit();