From 1319b09e10cd1ad6a18762f71aee51796fc52641 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Mon, 20 Dec 2010 21:41:21 +0100 Subject: [PATCH] Improves AddressesView to retrieve all postal addresses from the database. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- core | 2 +- include/userset.inc.php | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) 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(); -- 2.1.4