private function prepareField($value)
{
- $value = strtoupper(replace_accent($value));
+ $value = mb_strtoupper($value);
return preg_replace('/[^A-Z]/', ' ', $value);
}
$new = $this->prepareField($value);
$newLen = strlen($new);
$success = $this->matchWord($ini, $new, $newLen)
- || ($field == 'Nom patronymique' && $new == 'DE ' . $ini);
+ || ($field == 'lastname' && $new == 'DE ' . $ini);
if (!$success) {
$field = strtolower($field);
Platal::page()->trigError("Le " . $field . " que tu as choisi (" . $value .
{
$success = true;
$success_tmp = true;
+
if (is_null($value)) {
$sn_all = XDB::iterator("SELECT CONCAT(sn.particle, sn.name) AS name,
- sn.particle, sn.typeid, e.name AS type,
+ sn.particle, sn.typeid, e.type, e.name AS type_name,
FIND_IN_SET('has_particle', e.flags) AS has_particle,
FIND_IN_SET('always_displayed', e.flags) AS always_displayed,
FIND_IN_SET('public', e.flags) AS pub
- FROM profile_name_search AS sn
- INNER JOIN profile_name_search_enum AS e ON (e.id = sn.typeid)
+ FROM profile_name AS sn
+ INNER JOIN profile_name_enum AS e ON (e.id = sn.typeid)
WHERE sn.pid = {?} AND NOT FIND_IN_SET('not_displayed', e.flags)
ORDER BY NOT FIND_IN_SET('always_displayed', e.flags), e.id, sn.name",
S::v('uid'));
- $sn_types = XDB::iterator("SELECT id, name, FIND_IN_SET('has_particle', flags) AS has_particle
- FROM profile_name_search_enum
+ $sn_types = XDB::iterator("SELECT id, type, name,
+ FIND_IN_SET('has_particle', flags) AS has_particle
+ FROM profile_name_enum
WHERE NOT FIND_IN_SET('not_displayed', flags)
AND FIND_IN_SET('always_displayed', flags)
ORDER BY id");
$value[] = $sn;
$sn = $sn_all->next();
} else {
- $value[] = array('typeid' => $sn_type['id'],
- 'type' => $sn_type['name'],
- 'pub' => 1,
+ $value[] = array('name' => '',
+ 'particle' => '',
+ 'typeid' => $sn_type['id'],
+ 'type' => $sn_type['type'],
+ 'type_name' => $sn_type['name'],
'has_particle' => $sn_type['has_particle'],
- 'always_displayed' => 1);
+ 'always_displayed' => 1,
+ 'pub' => 1);
}
}
- do {
- $value[] = $sn;
- } while ($sn = $sn_all->next());
+ if ($sn) {
+ do {
+ $value[] = $sn;
+ } while ($sn = $sn_all->next());
+ }
} else {
+ require_once 'name.func.inc.php';
+
$res = XDB::query("SELECT s.particle, s.name
- FROM profile_name_search AS s
- INNER JOIN profile_name_search_enum AS e ON (e.id = s.typeid)
- WHERE s.pid = {?} AND e.name LIKE '%initial'
- ORDER BY e.name = 'Prénom initial'",
+ FROM profile_name AS s
+ INNER JOIN profile_name_enum AS e ON (e.id = s.typeid)
+ WHERE s.pid = {?} AND e.type LIKE '%ini'
+ ORDER BY e.type = 'firstname_ini'",
S::i('uid'));
$res = $res->fetchAllAssoc();
$initial = array();
- $initial['Nom patronymique'] = $res[0]['particle'] . $res[0]['name'];
- $initial['Prénom'] = $res[1]['name'];
+ $initial['lastname'] = $res[0]['particle'] . $res[0]['name'];
+ $initial['firstname'] = $res[1]['name'];
+ $sn_types = build_types();
$this->search_names = array();
foreach ($value as &$sn) {
$sn['name'] = trim($sn['name']);
- if ($sn['type'] == 'Prénom' || $sn['type'] == 'Nom patronymique') {
+ if ($sn['type'] == 'firstname' || $sn['type'] == 'lastname') {
$sn['name'] = $this->prepare($page, $sn['type'], $sn['name'],
$initial[$sn['type']], $success_tmp);
$success = $success && $success_tmp;
} else {
$this->search_names[$sn['typeid']] = array('fullname' => $sn['name']);
}
+ $sn['type_name'] = $sn_types[$sn['typeid']];
}
}
}
S::v('uid'));
list($public_name, $private_name) = $res->fetchOneRow();
if ($success) {
- require_once 'name.func.inc.php';
$sn_types_private = build_types('private');
$this->private_name_end = build_private_name($this->search_names, $sn_types_private);
$private_name = $public_name . $this->private_name_end;
Platal::page()->assign('public_name', $public_name);
Platal::page()->assign('private_name', $private_name);
}
+
return $value;
}
require_once 'name.func.inc.php';
$sn_old = build_sn_pub();
XDB::execute("DELETE FROM s
- USING profile_name_search AS s
- INNER JOIN profile_name_search_enum AS e ON (s.typeid = e.id)
+ USING profile_name AS s
+ INNER JOIN profile_name_enum AS e ON (s.typeid = e.id)
WHERE s.pid = {?} AND NOT FIND_IN_SET('not_displayed', e.flags)",
S::i('uid'));
$has_new = set_alias_names($this->search_names, $sn_old);
if ($has_new) {
$new_names = new NamesReq(S::user(), $this->search_names, $this->private_name_end);
$new_names->submit();
- Platal::page()->trigWarning("La demande de modification de tes noms a bien été prises en compte." .
+ Platal::page()->trigWarning("La demande de modification de tes noms a bien été prise en compte." .
" Tu recevras un email dès que ces changements auront été effectués.");
} else {
$display_names = array();
= $this->settings['yourself']
= $this->settings['promo']
= null;
- $this->settings['synchro_ax']
- = new ProfileBool();
$this->settings['email_directory']
= new ProfileEmail();
$this->settings['email_directory_new']
t.display_tel as mobile, t.pub as mobile_pub,
d.email_directory as email_directory,
q.profile_freetext as freetext, q.profile_freetext_pub as freetext_pub,
- q.profile_from_ax as synchro_ax, u.matricule_ax, p.yourself
+ u.matricule_ax, p.yourself
FROM auth_user_md5 AS u
INNER JOIN auth_user_quick AS q ON (u.user_id = q.user_id)
INNER JOIN profile_display AS p ON (p.pid = u.user_id)
preg_replace('@(\d{2})/(\d{2})/(\d{4})@', '\3-\2-\1', $this->values['naissance']),
S::v('uid'));
}
- if ($this->changed['freetext'] || $this->changed['freetext_pub'] || $this->changed['synchro_ax']) {
+ if ($this->changed['freetext'] || $this->changed['freetext_pub']) {
XDB::execute("UPDATE auth_user_quick
- SET profile_freetext={?}, profile_freetext_pub={?}, profile_from_ax = {?}
+ SET profile_freetext={?}, profile_freetext_pub={?}
WHERE user_id = {?}",
- $this->values['freetext'], $this->values['freetext_pub'],
- $this->values['synchro_ax'], S::v('uid'));
+ $this->values['freetext'], $this->values['freetext_pub'], S::v('uid'));
}
if ($this->changed['email_directory']) {
$new_email = ($this->values['email_directory'] == "new@example.org") ?