// Unknown key-value pairs available in the input map are retained as-is.
abstract public function getGeocodedAddress(array $address);
+ // Cleans the address from its geocoded data
+ abstract public function stripGeocodingFromAddress(array $address);
+
// Updates geoloc_administrativeareas, geoloc_subadministrativeareas and
// geoloc_localities databases with new geocoded data and returns the
// corresponding id.
return $address;
}
+ public function stripGeocodingFromAddress(array $address) {
+ unset($address['geoloc'], $address['geoloc_choice'], $address['countryId'],
+ $address['country'], $address['administrativeAreaName'],
+ $address['subAdministrativeAreaName'], $address['localityName'],
+ $address['thoroughfareName'], $address['postalCode']);
+ $address['accuracy'] = 0;
+ return $address;
+ }
+
// Updates the address with the geocoded information from Google Maps. Also
// cleans up the final informations.
private function getUpdatedAddress(array $address, array $geocodedData, $extraLines) {
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
-class ProfileAddress extends ProfileGeoloc
+class ProfileAddress extends ProfileGeocoding
{
private $bool;
private $pub;
if (!trim($address['text'])) {
unset($value[$key]);
} elseif (!$init) {
- $this->geolocAddress($address, $s);
+ $this->geocodeAddress($address, $s);
$success = $success && $s;
}
$this->cleanAddress($page, $key, $address);
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
-class ProfileJob extends ProfileGeoloc
+class ProfileJob extends ProfileGeocoding
{
private $pub;
private $mail_new;
}
foreach ($value as $key=>&$job) {
$ls = true;
- $this->geolocAddress($job['w_adr'], $s);
+ $this->geocodeAddress($job['w_adr'], $s);
$ls = ($ls && $s);
$this->cleanJob($page, $key, $job, $s);
$ls = ($ls && $s);
}
}
-abstract class ProfileGeoloc implements ProfileSetting
+abstract class ProfileGeocoding implements ProfileSetting
{
- protected function geolocAddress(array &$address, &$success)
+ protected function geocodeAddress(array &$address, &$success)
{
require_once 'geocoding.inc.php';
$success = true;
$success = false;
}
}
- if (isset($address['geoloc_choice']) && $address['geoloc_choice'] == 0) {
- $mailer = new PlMailer('geoloc/geoloc.mail.tpl');
- $mailer->assign('text', $address['text']);
- $mailer->assign('geoloc', $address['geoloc']);
- $mailer->send();
- } elseif (isset($address['geoloc_choice'])) {
- unset($address['geoloc'], $address['geoloc_choice']);
+ if (isset($address['geoloc_choice'])) {
+ if ($address['geoloc_choice'] == 0) {
+ $mailer = new PlMailer('geoloc/geoloc.mail.tpl');
+ $mailer->assign('text', $address['text']);
+ $mailer->assign('geoloc', $address['geoloc']);
+ $mailer->send();
+ }
+ $gmapsGeocoder = new GMapsGeocoder();
+ $address = $gmapsGeocoder->stripGeocodingFromAddress($address);
}
}
}