X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fprofile%2Faddresses.inc.php;h=780ee031555855f0dce9bc626e46eb5bb27ab506;hb=b8971a3ed64f3ba69becf1cd8f3b32ee2292026d;hp=1edfbc108f9c96f193c46da6570589c098775237;hpb=37d44b3b542764eda8d4f9c3febc814ae37f8157;p=platal.git diff --git a/modules/profile/addresses.inc.php b/modules/profile/addresses.inc.php index 1edfbc1..780ee03 100644 --- a/modules/profile/addresses.inc.php +++ b/modules/profile/addresses.inc.php @@ -1,6 +1,6 @@ bool->value($page, 'checked', $address['checked'], $s); $address['secondaire'] = $this->bool->value($page, 'secondaire', $address['secondaire'], $s); $address['mail'] = $this->bool->value($page, 'mail', $address['mail'], $s); $address['temporary'] = $this->bool->value($page, 'temporary', $address['temporary'], $s); @@ -75,15 +76,19 @@ class ProfileAddress extends ProfileGeoloc } } $current = 0; + $success = true; foreach ($value as $key=>&$adr) { if (@$adr['current']) { $current++; } } - if (!$init && $current != 1 && count($value) > 0) { + if ($current == 0 && count($value) > 0) { + foreach ($value as $key=>&$adr) { + $adr['current'] = true; + break; + } + } else if ($current > 1) { $success = false; - } else { - $success = true; } foreach ($value as $key=>&$adr) { $ls = true; @@ -112,35 +117,37 @@ class ProfileAddress extends ProfileGeoloc private function saveAddress($adrid, array &$address) { - $flags = array(); + $flags = new PlFlagSet(); if ($address['secondaire']) { - $flags[] = 'res-secondaire'; + $flags->addFlag('res-secondaire'); } if ($address['mail']) { - $flags[] = 'courrier'; + $flags->addFlag('courrier'); } if ($address['temporary']) { - $flags[] = 'temporaire'; + $flags->addFlag('temporaire'); } if ($address['current']) { - $flags[] = 'active'; + $flags->addFlag('active'); + } + if ($address['checked']) { + $flags->addFlag('coord-checked'); } - $flags = implode(',', $flags); XDB::execute("INSERT INTO adresses (adr1, adr2, adr3, postcode, city, cityid, country, region, regiontxt, pub, datemaj, statut, - uid, adrid) + uid, adrid, glat, glng) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, FROM_UNIXTIME({?}), {?}, - {?}, {?})", + {?}, {?}, {?}, {?})", $address['adr1'], $address['adr2'], $address['adr3'], $address['postcode'], $address['city'], $address['cityid'], $address['country'], $address['region'], $address['regiontxt'], $address['pub'], $address['datemaj'], $flags, - S::i('uid'), $adrid); + S::i('uid'), $adrid, $address['precise_lat'], $address['precise_lon']); foreach ($address['tel'] as $telid=>&$tel) { $this->saveTel($adrid, $telid, $tel); } @@ -168,23 +175,22 @@ class ProfileAddresses extends ProfilePage { parent::__construct($wiz); $this->settings['addresses'] = new ProfileAddress(); + $this->watched['addresses'] = true; } - protected function fetchData() + protected function _fetchData() { - if (count($this->orig) > 0) { - $this->values = $this->orig; - return; - } // Build the addresses tree $res = XDB::query("SELECT a.adrid AS id, a.adr1, a.adr2, a.adr3, UNIX_TIMESTAMP(a.datemaj) AS datemaj, a.postcode, a.city, a.cityid, a.region, a.regiontxt, a.pub, a.country, gp.pays AS countrytxt, gp.display, + FIND_IN_SET('coord-checked', a.statut) AS checked, FIND_IN_SET('res-secondaire', a.statut) AS secondaire, FIND_IN_SET('courrier', a.statut) AS mail, FIND_IN_SET('temporaire', a.statut) AS temporary, - FIND_IN_SET('active', a.statut) AS current + FIND_IN_SET('active', a.statut) AS current, + a.glat AS precise_lat, a.glng AS precise_lon FROM adresses AS a INNER JOIN geoloc_pays AS gp ON(gp.a2 = a.country) WHERE uid = {?} AND NOT FIND_IN_SET('pro', statut) @@ -226,7 +232,6 @@ class ProfileAddresses extends ProfilePage } unset($address['id']); } - parent::fetchData(); } }