X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fprofile%2Fpage.inc.php;h=78749ee17eda15f4b5fd44d948113e76ec7eb8ff;hb=5660032ac785d410f90e3f5b0d6948dc90b0cfea;hp=67fcbe7842b534708b14f5dafcfc7b536bc2d6ea;hpb=d2100923749766ffcf61745b0145cf82a3886716;p=platal.git diff --git a/modules/profile/page.inc.php b/modules/profile/page.inc.php index 67fcbe7..78749ee 100644 --- a/modules/profile/page.inc.php +++ b/modules/profile/page.inc.php @@ -133,17 +133,28 @@ class ProfilePhones implements ProfileSetting public function value(ProfilePage &$page, $field, $value, &$success) { $success = true; - if (is_null($value) || !is_array($value)) { + if (is_null($value)) { $value = array(); - $res = XDB::iterator("SELECT t.display_tel AS tel, t.tel_type AS type, t.pub, t.comment - FROM profile_phones AS t - WHERE t.uid = {?} AND t.link_type = {?} - ORDER BY t.tel_id", + $res = XDB::iterator('SELECT display_tel AS tel, tel_type AS type, pub, comment + FROM profile_phones + WHERE uid = {?} AND link_type = {?} + ORDER BY tel_id', $page->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']); @@ -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';