X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fprofile%2Fpage.inc.php;h=de655ec98c78ec54f2a5ac8df97de765d70e49cf;hb=ce0b2c6f3fc4e7c524df32f56f1bc8e8d573bb1a;hp=8b33915465426de31b39a02e81a993013e757b08;hpb=3f95a7bd17cd6cd7b218f12787276a485f496f1d;p=platal.git diff --git a/modules/profile/page.inc.php b/modules/profile/page.inc.php index 8b33915..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,20 +265,21 @@ 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'])) { - if ($address['geoloc_choice'] == 0) { - $mailer = new PlMailer('geoloc/geoloc.mail.tpl'); - $mailer->assign('text', $address['text']); - $mailer->assign('geoloc', $address['geoloc']); - $mailer->send(); - } + 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(); $gmapsGeocoder = new GMapsGeocoder(); $address = $gmapsGeocoder->stripGeocodingFromAddress($address); } @@ -401,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(); @@ -424,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';