From 29f732e8112ceb3c6544cffe0423494b004e07f4 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Wed, 4 Feb 2015 10:43:30 +0100 Subject: [PATCH] More details in the location field for poco. --- mod/poco.php | 46 ++++++++++++++++++++++++++++++++++++++++++---- mod/profiles.php | 17 ++++++++++++++++- 2 files changed, 58 insertions(+), 5 deletions(-) diff --git a/mod/poco.php b/mod/poco.php index c8d8f72e83..8eb45d2374 100644 --- a/mod/poco.php +++ b/mod/poco.php @@ -102,7 +102,8 @@ function poco_init(&$a) { intval($itemsPerPage) ); } elseif($system_mode) { - $r = q("SELECT `contact`.*, `profile`.`about` AS `pabout`, `profile`.`locality` AS `plocation`, `profile`.`pub_keywords`, `profile`.`gender` AS `pgender` + $r = q("SELECT `contact`.*, `profile`.`about` AS `pabout`, `profile`.`locality` AS `plocation`, `profile`.`pub_keywords`, `profile`.`gender` AS `pgender`, + `profile`.`address` AS `paddress`, `profile`.`region` AS `pregion`, `profile`.`postal-code` AS `ppostalcode`, `profile`.`country-name` AS `pcountry` FROM `contact` INNER JOIN `profile` ON `profile`.`uid` = `contact`.`uid` WHERE `self` = 1 AND `network` IN ('%s', '%s', '%s', '%s', '') AND `profile`.`is-default` AND `contact`.`uid` IN (SELECT `uid` FROM `pconfig` WHERE `cat` = 'system' AND `k` = 'suggestme' AND `v` = 1) LIMIT %d, %d", @@ -151,7 +152,8 @@ function poco_init(&$a) { 'currentLocation' => false, 'network' => false, 'gender' => false, - 'tags' => false + 'tags' => false, + 'address' => false ); if((! x($_GET,'fields')) || ($_GET['fields'] === '@all')) @@ -169,8 +171,24 @@ function poco_init(&$a) { if (($rr['about'] == "") AND isset($rr['pabout'])) $rr['about'] = $rr['pabout']; - if (($rr['location'] == "") AND isset($rr['plocation'])) - $rr['location'] = $rr['plocation']; + if ($rr['location'] == "") { + if (isset($rr['plocation'])) + $rr['location'] = $rr['plocation']; + + if (isset($rr['pregion']) AND ($rr['pregion'] != "")) { + if ($rr['location'] != "") + $rr['location'] .= ", "; + + $rr['location'] .= $rr['pregion']; + } + + if (isset($rr['pcountry']) AND ($rr['pcountry'] != "")) { + if ($rr['location'] != "") + $rr['location'] .= ", "; + + $rr['location'] .= $rr['pcountry']; + } + } if (($rr['gender'] == "") AND isset($rr['pgender'])) $rr['gender'] = $rr['pgender']; @@ -235,6 +253,26 @@ function poco_init(&$a) { $entry['tags'] = array($cleaned); } + if($fields_ret['address']) { + $entry['address'] = array(); + + // Deactivated. It just reveals too much data. (Although its from the default profile) + //if (isset($rr['paddress'])) + // $entry['address']['streetAddress'] = $rr['paddress']; + + if (isset($rr['plocation'])) + $entry['address']['locality'] = $rr['plocation']; + + if (isset($rr['pregion'])) + $entry['address']['region'] = $rr['pregion']; + + // See above + //if (isset($rr['ppostalcode'])) + // $entry['address']['postalCode'] = $rr['ppostalcode']; + + if (isset($rr['pcountry'])) + $entry['address']['country'] = $rr['pcountry']; + } $ret['entry'][] = $entry; } diff --git a/mod/profiles.php b/mod/profiles.php index befeedb2ef..2b4952c3b6 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -485,10 +485,25 @@ function profiles_post(&$a) { } if($is_default) { + $location = $locality; + + if ($region != "") { + if ($location != "") + $location .= ", "; + + $location .= $region; + } + + if ($country_name != "") { + if ($location != "") + $location .= ", "; + + $location .= $country_name; + } $r = q("UPDATE `contact` SET `about` = '%s', `location` = '%s', `keywords` = '%s', `gender` = '%s' WHERE `self` = 1 AND `uid` = %d", dbesc($about), - dbesc($locality), + dbesc($location), dbesc($pub_keywords), dbesc($gender), intval(local_user())