X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fprofile%2Fpage.inc.php;h=de655ec98c78ec54f2a5ac8df97de765d70e49cf;hb=f280f651c1ea4059896655b132ddaec1e39cbd1b;hp=67fcbe7842b534708b14f5dafcfc7b536bc2d6ea;hpb=2db80ab6f7d054ec274c66f7ba983f49596b81cf;p=platal.git diff --git a/modules/profile/page.inc.php b/modules/profile/page.inc.php index 67fcbe7..de655ec 100644 --- a/modules/profile/page.inc.php +++ b/modules/profile/page.inc.php @@ -1,6 +1,6 @@ pid(), $this->link_type); - $value = $res->fetchAllAssoc(); + if ($res->numRows() > 0) { + $value = $res->fetchAllAssoc(); + } else { + $value = array( + 0 => array( + 'type' => 'fixed', + 'tel' => '', + 'pub' => 'private', + 'comment' => '', + ) + ); + } } foreach ($value as $key=>&$phone) { - if (@$phone['removed']) { + if (isset($phone['removed']) && $phone['removed']) { unset($value[$key]); } else { unset($phone['removed']); @@ -168,7 +179,7 @@ class ProfilePhones implements ProfileSetting private function saveTel($pid, $telid, array &$phone) { if ($phone['tel'] != '') { - XDB::execute("INSERT INTO profile_phones (uid, link_type, link_id, tel_id, tel_type, + XDB::execute("INSERT INTO profile_phones (pid, link_type, link_id, tel_id, tel_type, search_tel, display_tel, pub, comment) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})", @@ -180,7 +191,7 @@ class ProfilePhones implements ProfileSetting public function save(ProfilePage &$page, $field, $value) { XDB::execute("DELETE FROM profile_phones - WHERE uid = {?} AND link_type = {?} AND link_id = {?}", + WHERE pid = {?} AND link_type = {?} AND link_id = {?}", $page->pid(), $this->link_type, $this->link_id); $this->saveTels($page->pid(), $field, $value); } @@ -254,12 +265,15 @@ abstract class ProfileGeocoding implements ProfileSetting { require_once 'geocoding.inc.php'; $success = true; - if ($address['changed'] == 1) { + if (isset($address['changed']) && $address['changed'] == 1) { $gmapsGeocoder = new GMapsGeocoder(); $address = $gmapsGeocoder->getGeocodedAddress($address); if (isset($address['geoloc'])) { $success = false; } + } elseif (@$address['changed'] && !@$address['text']) { + $address = empty_address(); + $address['pub'] = 'private'; } if (isset($address['geoloc_choice']) && ($address['geoloc_choice'] == 0)) { $mailer = new PlMailer('geoloc/geoloc.mail.tpl'); @@ -399,7 +413,7 @@ abstract class ProfilePage implements PlWizardPage $page->assign('errors', $this->errors); } - public function process() + public function process(&$global_success) { $global_success = true; $this->fetchData(); @@ -422,9 +436,14 @@ abstract class ProfilePage implements PlWizardPage return Post::has('next_page') ? PlWizard::NEXT_PAGE : PlWizard::CURRENT_PAGE; } Platal::page()->trigError("Certains champs n'ont pas pu être validés, merci de corriger les informations " - . "de ton profil et de revalider ta demande"); + . "de ton profil et de revalider ta demande."); return PlWizard::CURRENT_PAGE; } + + public function success() + { + return 'Ton profil a bien été mis à jour.'; + } } require_once dirname(__FILE__) . '/general.inc.php';