projects
/
platal.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote branch 'origin/master' into account
[platal.git]
/
modules
/
profile
/
page.inc.php
diff --git
a/modules/profile/page.inc.php
b/modules/profile/page.inc.php
index
67fcbe7
..
de655ec
100644
(file)
--- a/
modules/profile/page.inc.php
+++ b/
modules/profile/page.inc.php
@@
-1,6
+1,6
@@
<?php
/***************************************************************************
<?php
/***************************************************************************
- * Copyright (C) 2003-20
09
Polytechnique.org *
+ * Copyright (C) 2003-20
10
Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
@@
-133,17
+133,28
@@
class ProfilePhones implements ProfileSetting
public function value(ProfilePage &$page, $field, $value, &$success)
{
$success = true;
public function value(ProfilePage &$page, $field, $value, &$success)
{
$success = true;
- if (is_null($value)
|| !is_array($value)
) {
+ if (is_null($value)) {
$value = array();
$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 t
el_id'
,
$page->pid(), $this->link_type);
$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) {
}
foreach ($value as $key=>&$phone) {
- if (
@
$phone['removed']) {
+ if (
isset($phone['removed']) &&
$phone['removed']) {
unset($value[$key]);
} else {
unset($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'] != '') {
private function saveTel($pid, $telid, array &$phone)
{
if ($phone['tel'] != '') {
- XDB::execute("INSERT INTO profile_phones (
u
id, link_type, link_id, tel_id, tel_type,
+ XDB::execute("INSERT INTO profile_phones (
p
id, link_type, link_id, tel_id, tel_type,
search_tel, display_tel, pub, comment)
VALUES ({?}, {?}, {?}, {?}, {?},
{?}, {?}, {?}, {?})",
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
public function save(ProfilePage &$page, $field, $value)
{
XDB::execute("DELETE FROM profile_phones
- WHERE
u
id = {?} AND link_type = {?} AND link_id = {?}",
+ WHERE
p
id = {?} AND link_type = {?} AND link_id = {?}",
$page->pid(), $this->link_type, $this->link_id);
$this->saveTels($page->pid(), $field, $value);
}
$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;
{
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;
}
$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');
}
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);
}
$page->assign('errors', $this->errors);
}
- public function process()
+ public function process(
&$global_success
)
{
$global_success = true;
$this->fetchData();
{
$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 "
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;
}
return PlWizard::CURRENT_PAGE;
}
+
+ public function success()
+ {
+ return 'Ton profil a bien été mis à jour.';
+ }
}
require_once dirname(__FILE__) . '/general.inc.php';
}
require_once dirname(__FILE__) . '/general.inc.php';