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",
$this->id, $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']);
}
}
-abstract class ProfileGeoloc implements ProfileSetting
+abstract class ProfileGeocoding implements ProfileSetting
{
- protected function geolocAddress(array &$address, &$success)
+ protected function geocodeAddress(array &$address, &$success)
{
- require_once 'geoloc.inc.php';
+ require_once 'geocoding.inc.php';
$success = true;
- if ($address['changed'] == 1) {
- cleanText($address['text']);
- geolocGoogle($address);
- $address['updateTime'] = time();
- // postalAddress
+ if (isset($address['changed']) && $address['changed'] == 1) {
+ $gmapsGeocoder = new GMapsGeocoder();
+ $address = $gmapsGeocoder->getGeocodedAddress($address);
if (isset($address['geoloc'])) {
$success = false;
}
- unset($address['changed']);
}
- if (isset($address['geoloc_choice']) && $address['geoloc_choice'] == 0) {
+ 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);
}
}
}
$page->assign('errors', $this->errors);
}
- public function process()
+ public function process(&$global_success)
{
$global_success = true;
$this->fetchData();
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';