From: Stéphane Jacob Date: Wed, 29 Dec 2010 01:28:00 +0000 (+0100) Subject: Adds adminarea to geoloac_subadministrativearea. X-Git-Tag: xorg/1.0.2~51 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=9895bd60324c621f51e698a142e4449869aef26f;p=platal.git Adds adminarea to geoloac_subadministrativearea. Signed-off-by: Stéphane Jacob --- diff --git a/classes/geocoder.php b/classes/geocoder.php index 0808f4e..bec39cc 100644 --- a/classes/geocoder.php +++ b/classes/geocoder.php @@ -39,19 +39,29 @@ abstract class Geocoder { 'subAdministrativeArea' => 'geoloc_subadministrativeareas', 'locality' => 'geoloc_localities', ); + static $extras = array( + 'subAdministrativeArea' => array( + 'field' => 'administrativearea', + 'name' => 'administrativeAreaName') + ) + ); $areaName = $area . 'Name'; $areaNameLocal = $areaName . 'Local'; $areaId = $area . 'Id'; if (!is_null($address->$areaName) && isset($databases[$area])) { + $extra = (isset($extras[$area]) ? $extras[$area]['administrativeAreaName'] : false; + $res = XDB::query('SELECT id, nameLocal FROM ' . $databases[$area] . ' WHERE name = {?}', $address->$areaName); if ($res->numRows() == 0) { - XDB::execute('INSERT INTO ' . $databases[$area] . ' (name, nameLocal, country) - VALUES ({?}, {?}, {?})', - $address->$areaName, $address->$areaNameLocal, $address->countryId); + XDB::execute('INSERT INTO ' . $databases[$area] . ' (name, nameLocal, country' . + ($extra ? ', ' . $extras[$area]['field'] : '') . ') + VALUES ({?}, {?}, {?}' . ($extra ? ', {?}' : '') . ')', + $address->$areaName, $address->$areaNameLocal, $address->countryId, + ($extra ? $address->$extra : null); $address->$areaId = XDB::insertId(); } else { // XXX: remove this once all areas have both nameLocal and name. diff --git a/upgrade/1.0.2/07_areas.sql b/upgrade/1.0.2/07_areas.sql new file mode 100644 index 0000000..6a5b0a0 --- /dev/null +++ b/upgrade/1.0.2/07_areas.sql @@ -0,0 +1,7 @@ +ALTER TABLE geoloc_subadministrativeareas ADD COLUMN administrativearea VARCHAR(255) DEFAULT NULL; + + UPDATE geoloc_subadministrativeareas AS gs +INNER JOIN profile_addresses AS pa ON (gs.id = pa.subAdministrativeAreaId) + SET gs.administrativearea = pa.administrativeAreaId; + +-- vim:set syntax=mysql: