X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fprofile%2Fpage.inc.php;h=8d3fb84445d8c4e51651b964b861bfd73079aaf1;hb=7996ae8cd41fbb3ccd748eaed71a50f866269c6e;hp=67fcbe7842b534708b14f5dafcfc7b536bc2d6ea;hpb=483da16573717c21c7e6da3eacc094048ab7d72f;p=platal.git diff --git a/modules/profile/page.inc.php b/modules/profile/page.inc.php index 67fcbe7..8d3fb84 100644 --- a/modules/profile/page.inc.php +++ b/modules/profile/page.inc.php @@ -1,6 +1,6 @@ tel = new ProfileTel(); - $this->pub = new ProfilePub(); + $this->tel = new ProfileSettingTel(); + $this->pub = new ProfileSettingPub(); $this->link_type = $type; $this->link_id = $link_id; } @@ -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 pid = {?} 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']); @@ -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); } @@ -194,7 +205,7 @@ class ProfilePhones implements ProfileSetting } } -class ProfilePub extends ProfileNoSave +class ProfileSettingPub extends ProfileNoSave { public function value(ProfilePage &$page, $field, $value, &$success) { @@ -211,7 +222,7 @@ class ProfilePub extends ProfileNoSave } } -class ProfileBool extends ProfileNoSave +class ProfileSettingBool extends ProfileNoSave { public function value(ProfilePage &$page, $field, $value, &$success) { @@ -223,7 +234,7 @@ class ProfileBool extends ProfileNoSave } } -class ProfileDate extends ProfileNoSave +class ProfileSettingDate extends ProfileNoSave { public function value(ProfilePage &$page, $field, $value, &$success) { @@ -248,18 +259,21 @@ class ProfileDate extends ProfileNoSave } } -abstract class ProfileGeocoding implements ProfileSetting +abstract class ProfileSettingGeocoding implements ProfileSetting { protected function geocodeAddress(array &$address, &$success) { 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';