for (var i = 0; i < 10; i++) {
if ($('#search_name_' + i).find(':text').val()) {
searchnames += $('#search_name_' + i).find('[name*=typeid]').val() + ';';
- searchnames += $('#search_name_' + i).find(':checked').length-1 + ';';
searchnames += $('#search_name_' + i).find(':text').val() + ';;';
}
}
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
-function build_names_display($data)
+function build_javascript_names($data)
{
$data_array = explode(';;', $data);
$n = count($data_array);
$n--;
for ($i = 0; $i < $n; $i++) {
$searchname = explode(';', $data_array[$i]);
- if ($searchname[1] != 0) {
- list($particle, $name) = explode(' ', $searchname[2], 2);
- if (!$name) {
- list($particle, $name) = explode('\'', $searchname[2], 2);
- }
- } else {
- $particle = '';
- $name = $searchname[2];
- }
- if (!isset($search_names[$searchname[0]])) {
- $search_names[$searchname[0]] = array($searchname[2], $name);
+ if (isset($search_names[$searchname[0]])) {
+ $search_names[$searchname[0]][] = $searchname[1];
} else {
- $search_names[$searchname[0]] = array_merge($search_names[$searchname[0]], array($name));
+ $search_names[$searchname[0]] = array('fullname' => $searchname[1]);
}
}
+
$sn_types_public = build_types('public');
$sn_types_private = build_types('private');
$full_name = build_full_name($search_names, $sn_types_public);
return build_public_name($search_names, $sn_types_public, $full_name) . ';' .
- build_private_name($search_names, $sn_types_private);
+ build_private_name($search_names, $sn_types_private);
+}
+
+function build_display_names(&$display_names, $search_names, $private_name_end = null, &$alias = null)
+{
+ $sn_types_public = build_types('public');
+ $full_name = build_full_name($search_names, $sn_types_public);
+ $display_names['public_name'] = build_public_name($search_names, $sn_types_public, $full_name);
+ $display_names['private_name'] = $display_names['public_name'] . $private_name_end;
+ $display_names['directory_name'] = build_directory_name($search_names, $sn_types_public, $full_name);
+ $display_names['short_name'] = build_short_name($search_names, $sn_types_public, $alias);
+ $display_names['sort_name'] = build_sort_name($search_names, $sn_types_public);
}
-function build_types($pub)
+function build_types($pub = null)
{
if ($pub == 'public') {
$sql_pub = "AND FIND_IN_SET('public', flags)";
$sn_types = XDB::iterator($sql);
$types = array();
while ($sn_type = $sn_types->next()) {
- $types[$sn_type['name']] = $sn_type['id'];
+ if ($pub) {
+ $types[$sn_type['name']] = $sn_type['id'];
+ } else {
+ $types[$sn_type['id']] = $sn_type['name'];
+ }
}
return $types;
}
{
$name = "";
if (isset($search_names[$sn_types['Nom usuel']])) {
- $name .= $search_names[$sn_types['Nom usuel']][0] . " ("
- . $search_names[$sn_types['Nom patronymique']][0] . ")";
+ $name .= $search_names[$sn_types['Nom usuel']]['fullname'] . " ("
+ . $search_names[$sn_types['Nom patronymique']]['fullname'] . ")";
} else {
- $name .= $search_names[$sn_types['Nom patronymique']][0];
+ $name .= $search_names[$sn_types['Nom patronymique']]['fullname'];
}
if (isset($search_names[$sn_types['Nom marital']])
|| isset($search_names[$sn_types['Pseudonyme (nom de plume)']])) {
} else {
$name .= "M ";
}
- $name .= $search_names[$sn_types['Nom marital']][0];
+ $name .= $search_names[$sn_types['Nom marital']]['fullname'];
if (isset($search_names[$sn_types['Pseudonyme (nom de plume)']])) {
$name .= ", ";
}
}
if (isset($search_names[$sn_types['Pseudonyme (nom de plume)']])) {
- $name .= $search_names[$sn_types['Pseudonyme (nom de plume)']][0];
+ $name .= $search_names[$sn_types['Pseudonyme (nom de plume)']]['fullname'];
}
$name .= ")";
}
function build_public_name(&$search_names, &$sn_types, $full_name)
{
- return $search_names[$sn_types['Prénom']][0] . " " . $full_name;
+ return $search_names[$sn_types['Prénom']]['fullname'] . " " . $full_name;
}
function build_private_name(&$search_names, &$sn_types)
|| isset($search_names[$sn_types['Autre nom']]))) {
$name .= " (";
if (isset($search_names[$sn_types['Surnom']])) {
- $name .= "alias " . $search_names[$sn_types['Surnom']][0];
- $i = 2;
+ $name .= "alias " . $search_names[$sn_types['Surnom']]['fullname'];
+ $i = 0;
while (isset($search_names[$sn_types['Surnom']][$i])) {
$name .= ", " . $search_names[$sn_types['Surnom']][$i];
$i++;
}
}
if (isset($search_names[$sn_types['Autre prénom']])) {
- $name .= "autres prénoms : " . $search_names[$sn_types['Autre prénom']][0];
- $i = 2;
+ $name .= "autres prénoms : " . $search_names[$sn_types['Autre prénom']]['fullname'];
+ $i = 0;
while (isset($search_names[$sn_types['Autre prénom']][$i])) {
$name .= ", " . $search_names[$sn_types['Autre prénom']][$i];
$i++;
}
}
if (isset($search_names[$sn_types['Autre nom']])) {
- $name .= "autres noms : " . $search_names[$sn_types['Autre nom']][0];
- $i = 2;
+ $name .= "autres noms : " . $search_names[$sn_types['Autre nom']]['fullname'];
+ $i = 0;
while (isset($search_names[$sn_types['Autre nom']][$i])) {
$name .= ", " . $search_names[$sn_types['Autre nom']][$i];
$i++;
function build_directory_name(&$search_names, &$sn_types, $full_name)
{
- return $full_name . " " . $search_names[$sn_types['Prénom']][0];
+ return $full_name . " " . $search_names[$sn_types['Prénom']]['fullname'];
}
-function short_name(&$search_names, &$sn_types)
+function build_short_name(&$search_names, &$sn_types, &$alias = null)
{
- $name = "";
if (isset($search_names[$sn_types['Nom usuel']])) {
- $name .= $search_names[$sn_types['Nom usuel']][0];
+ $lastname = $search_names[$sn_types['Nom usuel']]['fullname'];
} else {
- $name .= $search_names[$sn_types['Nom patronymique']][0];
+ $lastname = $search_names[$sn_types['Nom patronymique']]['fullname'];
}
- $name = " ";
if (isset($search_names[$sn_types['Prénom usuel']])) {
- $name .= $search_names[$sn_types['Prénom usuel']][0];
+ $firstname = $search_names[$sn_types['Prénom usuel']]['fullname'];
} else {
- $name .= $search_names[$sn_types['Prénom']][0];
+ $firstname = $search_names[$sn_types['Prénom']]['fullname'];
}
- return $name;
+ if ($alias) {
+ $alias = make_username($firstname, $lastname);
+ }
+ return $firstname . " " . $lastname;
}
-function sort_name(&$search_names, &$sn_types)
+function build_sort_name(&$search_names, &$sn_types)
{
$name = "";
if (isset($search_names[$sn_types['Nom usuel']])) {
- $name .= $search_names[$sn_types['Nom usuel']][1];
+ $name .= $search_names[$sn_types['Nom usuel']]['name'];
} else {
- $name .= $search_names[$sn_types['Nom patronymique']][1];
+ $name .= $search_names[$sn_types['Nom patronymique']]['name'];
}
- $name .= $search_names[$sn_types['Prénom']][0];
+ $name .= " " . $search_names[$sn_types['Prénom']]['fullname'];
return $name;
}
+function set_profile_display(&$display_names)
+{
+ XDB::execute("UPDATE profile_display
+ SET public_name = {?}, private_name = {?},
+ directory_name = {?}, short_name = {?}, sort_name = {?}
+ WHERE pid = {?}",
+ $display_names['public_name'], $display_names['private_name'],
+ $display_names['directory_name'], $display_names['short_name'],
+ $display_names['sort_name'], S::v('uid'));
+}
+
+function build_sn_pub()
+{
+ $res = XDB::iterator("SELECT CONCAT(sn.particle, sn.name) AS fullname, sn.typeid,
+ sn.particle, sn.name, sn.id
+ FROM profile_name_search AS sn
+ INNER JOIN profile_name_search_enum AS e ON (e.id = sn.typeid)
+ WHERE sn.pid = {?} AND NOT FIND_IN_SET('not_displayed', e.flags)
+ AND FIND_IN_SET('public', e.flags)
+ ORDER BY NOT FIND_IN_SET('always_displayed', e.flags), e.id, sn.name",
+ S::i('uid'));
+ $sn_old = array();
+ while ($old = $res->next()) {
+ $sn_old[$old['typeid']] = array('fullname' => $old['fullname'],
+ 'name' => $old['name'],
+ 'particle' => $old['particle'],
+ 'id' => $old['id']);
+ }
+ return $sn_old;
+}
+
+function set_alias_names(&$sn_new, $sn_old, $update_new = false, $new_alias = null)
+{
+ $has_new = false;
+ foreach ($sn_new as $typeid => $sn) {
+ if (isset($sn['pub'])) {
+ if (isset($sn_old[$typeid]) && ($sn_old[$typeid]['fullname'] == $sn['fullname'] && $update_new)) {
+ XDB::execute("UPDATE profile_name_search
+ SET particle = {?}, name = {?}, typeid = {?}
+ WHERE id = {?} AND pid = {?}",
+ $sn['particle'], $sn['name'], $typeid, $sn_old[$typeid]['id'], S::i('uid'));
+ unset($sn_old[$typeid]);
+ } elseif ($update_new
+ || (isset($sn_old[$typeid]) && $sn_old[$typeid]['fullname'] == $sn['fullname'])) {
+ XDB::execute("INSERT INTO profile_name_search (particle, name, typeid, pid)
+ VALUES ({?}, {?}, {?}, {?})",
+ $sn['particle'], $sn['name'], $typeid, S::i('uid'));
+ unset($sn_old[$typeid]);
+ } else {
+ $has_new = true;
+ }
+ } else {
+ if ($sn['fullname'] != '') {
+ XDB::execute("INSERT INTO profile_name_search (particle, name, typeid, pid)
+ VALUES ('', {?}, {?}, {?})",
+ $sn['fullname'], $typeid, S::i('uid'));
+ }
+ }
+ }
+ if (count($sn_old) > 0) {
+ if (!$update_new) {
+ $has_new = true;
+ foreach ($sn_old as $typeid => $sn) {
+ XDB::execute("INSERT INTO profile_name_search (particle, name, typeid, pid)
+ VALUES ({?}, {?}, {?}, {?})",
+ $sn['particle'], $sn['name'], $typeid, S::i('uid'));
+ }
+ } else {
+ foreach ($sn_old as $typeid => $sn) {
+ XDB::execute("DELETE FROM profile_name_search
+ WHERE pid = {?} AND id = {?}",
+ S::i('uid'), $sn['id']);
+ }
+ }
+ }
+ if ($update_new) {
+ XDB::execute("DELETE FROM aliases
+ WHERE FIND_IN_SET('usage', flags) AND id = {?}",
+ S::i('uid'));
+ }
+ if ($new_alias) {
+ XDB::execute("INSERT INTO aliases (alias, type, flags, id)
+ VALUES ({?}, 'alias', 'usage', {?})",
+ $new_alias, S::i('uid'));
+ }
+ /*require_once('user.func.inc.php');
+ user_reindex($uid);*/
+ return $has_new;
+}
+
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
-// {{{ class UsageReq
+// {{{ class NamesReq4
-class UsageReq extends Validate
+class NamesReq extends Validate
{
// {{{ properties
public $unique = true;
- public $nom_usage;
- public $alias = '';
+ public $sn_old;
+ public $sn_new;
+ public $display_names;
+ public $old_alias;
+ public $new_alias;
+ public $sn_types;
- public $oldusage;
- public $oldalias;
-
- public $homonyme;
- public $reason;
-
- public $rules = "Refuser
- tout ce qui n'est visiblement pas un nom de famille (ce qui est
- extremement rare car à peu près n'importe quoi peut être un nom de
- famille...)";
+ public $rules = "Refuser tout ce qui n'est visiblement pas un nom de famille (ce qui est extremement rare car à peu près n'importe quoi peut être un nom de famille).";
// }}}
// {{{ constructor
- public function __construct(User &$_user, $_usage, $_reason)
+ public function __construct(User &$_user, $_search_names, $_private_name_end)
{
parent::__construct($_user, true, 'usage');
- $this->nom_usage = $_usage;
- $this->reason = $_reason;
-
- $res = XDB::query("SELECT prenom FROM auth_user_md5 WHERE user_id = {?}", $this->user->id());
- $this->alias = make_username($res->fetchOneCell(), $this->nom_usage);
- if (!$this->nom_usage) {
- $this->alias = "";
+ require_once 'name.func.inc.php';
+
+ $this->sn_types = build_types();
+ $this->sn_old = build_sn_pub();
+ $this->sn_new = $_search_names;
+ $this->new_alias = true;
+ $this->display_names = array();
+
+ build_display_names($this->display_names, $_search_names, $_private_name_end, $this->new_alias);
+ foreach ($this->sn_new AS $key => &$sn) {
+ if (!isset($sn['pub'])) {
+ unset($this->sn_new[$key]);
+ }
+ }
+ $res = XDB::query("SELECT alias
+ FROM aliases
+ WHERE id = {?} AND type = 'alias' AND FIND_IN_SET('usage', flags)",
+ $this->user->id());
+ $this->old_alias = $res->fetchOneCell();
+ if ($this->old_alias != $this->new_alias) {
+ $res = XDB::query("SELECT id
+ FROM aliases
+ WHERE alias = {?}",
+ $this->new_alias);
+ if ($res->fetchOneCell()) {
+ $this->new_alias = null;
+ }
}
-
- $res = XDB::query("
- SELECT e.alias, u.nom_usage, a.id
- FROM auth_user_md5 as u
- LEFT JOIN aliases as e ON(e.type='alias' AND FIND_IN_SET('usage',e.flags) AND e.id = u.user_id)
- LEFT JOIN aliases as a ON(a.alias = {?} AND a.id != u.user_id)
- WHERE u.user_id = {?}", $this->alias, $this->user->id());
- list($this->oldalias, $this->oldusage, $this->homonyme) = $res->fetchOneRow();
}
// }}}
public function formu()
{
- return 'include/form.valid.nomusage.tpl';
+ return 'include/form.valid.names.tpl';
}
// }}}
protected function _mail_subj()
{
- return "[Polytechnique.org/USAGE] Changement de nom d'usage";
+ return "[Polytechnique.org/NOMS] Changement de noms";
}
// }}}
{
global $globals;
if ($isok) {
- $res = " Le changement de nom d'usage que tu as demandé vient d'être effectué.";
- if ($this->oldalias) {
- $res .= "\n\n Les alias {$this->oldalias}@{$globals->mail->domain} et @{$globals->mail->domain2} ont été supprimés.";
- }
- if ($this->nom_usage) {
- $res .= "\n\n Les alias {$this->alias}@{$globals->mail->domain} et @{$globals->mail->domain2} sont maintenant à ta disposition !";
+ $res = " Le changement de nom que tu as demandé vient d'être effectué.";
+ if ($this->old_alias != $this->new_alias) {
+ if ($this->old_alias) {
+ $res .= "\n\n Les alias {$this->old_alias}@{$globals->mail->domain} et @{$globals->mail->domain2} ont été supprimés.";
+ }
+ if ($this->new_alias) {
+ $res .= "\n\n Les alias {$this->new_alias}@{$globals->mail->domain} et @{$globals->mail->domain2} sont maintenant à ta disposition !";
+ }
}
if ($globals->mailstorage->googleapps_domain) {
require_once 'googleapps.inc.php';
$account = new GoogleAppsAccount($this->user);
if ($account->active()) {
- $res .= "\n\n Si tu utilises Google Apps, tu peux changer ton nom d'usage sur https://mail.google.com/a/polytechnique.org/#settings/accounts";
+ $res .= "\n\n Si tu utilises Google Apps, tu peux changer ton nom d'usage sur https://mail.google.com/a/polytechnique.org/#settings/accounts.";
}
}
return $res;
} else {
- return " La demande de changement de nom d'usage que tu avais faite a été refusée.";
+ return " La demande de changement de nom que tu avais faite a été refusée.";
}
}
public function commit()
{
require_once 'notifs.inc.php';
- register_watch_op($this->user->id(), WATCH_FICHE, '', 'nom');
- require_once('user.func.inc.php');
- set_new_usage($this->user->id(), $this->nom_usage, $this->alias);
+ require_once('name.func.inc.php');
+
+ register_watch_op($this->user->id(), WATCH_FICHE, '', 'search_names');
+ set_profile_display($this->display_names);
+ set_alias_names($this->sn_new, $this->sn_old, true, $this->new_alias);
return true;
}
'profile/medal' => $this->make_hook('medal', AUTH_PUBLIC),
'profile/name_info' => $this->make_hook('name_info', AUTH_PUBLIC),
'profile/orange' => $this->make_hook('p_orange', AUTH_MDP),
- 'profile/usage' => $this->make_hook('p_usage', AUTH_MDP),
'referent' => $this->make_hook('referent', AUTH_COOKIE),
'emploi' => $this->make_hook('ref_search', AUTH_COOKIE),
header('Content-Type: text/html; charset=utf-8');
$page->changeTpl('profile/general.buildnames.tpl', NO_SKIN);
require_once 'name.func.inc.php';
- $page->assign('names', build_names_display($data));
+ $page->assign('names', build_javascript_names($data));
}
function handler_p_orange(&$page)
$page->assign('list', $it);
}
- function handler_p_usage(&$page)
- {
- $page->changeTpl('profile/nomusage.tpl');
-
- require_once 'validations.inc.php';
-
- $res = XDB::query(
- "SELECT u.nom, u.nom_usage, u.flags, e.alias
- FROM auth_user_md5 AS u
- LEFT JOIN aliases AS e ON(u.user_id = e.id
- AND FIND_IN_SET('usage', e.flags))
- WHERE user_id={?}", S::v('uid'));
-
- list($nom, $usage_old, $flags, $alias_old) = $res->fetchOneRow();
- $flags = new PlFlagSet($flags);
- $page->assign('usage_old', $usage_old);
- $page->assign('alias_old', $alias_old);
-
- $nom_usage = replace_accent(trim(Env::v('nom_usage')));
- $nom_usage = strtoupper($nom_usage);
- $page->assign('usage_req', $nom_usage);
-
- if (Env::has('submit') && ($nom_usage != $usage_old)) {
- S::assert_xsrf_token();
-
- // on vient de recevoir une requete, differente de l'ancien nom d'usage
- if ($nom_usage == $nom) {
- $page->trigWarning('Le nom d\'usage que tu demandes est identique à ton nom à l\'X, '
- . 'aucune modification n\'a donc été effectuée.');
- $page->assign('same', true);
- } else { // le nom de mariage est distinct du nom à l'X
- // on calcule l'alias pour l'afficher
- $reason = Env::v('reason');
- if ($reason == 'other') {
- $reason = Env::v('other_reason');
- }
- $myusage = new UsageReq(S::user(), $nom_usage, $reason);
- $myusage->submit();
- $page->assign('myusage', $myusage);
- }
- }
- }
-
function handler_xnet(&$page)
{
$page->changeTpl('profile/groupesx.tpl');
class ProfileSearchNames implements ProfileSetting
{
- private $public_name;
- private $private_name;
- private $directory_name;
- private $short_name;
- private $sort_name;
+ private $private_name_end;
+ private $search_names;
private function matchWord($old, $new, $newLen) {
return ($i = strpos($old, $new)) !== false
private function prepare(ProfilePage &$page, $field, $value, $init, &$success)
{
$success = true;
- $ini = $this->prepareField($init);
- $new = $this->prepareField($value);
+ $ini = $this->prepareField($init);
+ $new = $this->prepareField($value);
$newLen = strlen($new);
$success = $this->matchWord($ini, $new, $newLen)
|| ($field == 'Nom patronymique' && $new == 'DE ' . $ini);
public function value(ProfilePage &$page, $field, $value, &$success)
{
- $success = true;
+ $success = true;
$success_tmp = true;
if (is_null($value)) {
$sn_all = XDB::iterator("SELECT CONCAT(sn.particle, sn.name) AS name,
$initial = array();
$initial['Nom patronymique'] = $res[0]['particle'] . $res[0]['name'];
$initial['Prénom'] = $res[1]['name'];
- $search_names = array();
- foreach ($value as $key => &$sn) {
+ $this->search_names = array();
+ foreach ($value as &$sn) {
$sn['name'] = trim($sn['name']);
if ($sn['type'] == 'Prénom' || $sn['type'] == 'Nom patronymique') {
$sn['name'] = $this->prepare($page, $sn['type'], $sn['name'],
$initial[$sn['type']], $success_tmp);
$success = $success && $success_tmp;
}
+ if ($sn['pub']) {
+ if (isset($sn['particle']) && ($sn['particle'] != '')) {
+ list($particle, $name) = explode(' ', $sn['name'], 2);
+ $particle = trim($particle) . ' ';
+ if (!$name) {
+ list($particle, $name) = explode('\'', $sn['name'], 2);
+ $particle = trim($particle);
+ }
+ } else {
+ $particle = '';
+ $name = $sn['name'];
+ }
+ }
if ($sn['name'] != '') {
- if (!isset($search_names[$sn['typeid']])) {
- $search_names[$sn['typeid']] = array($sn['name'], $name);
+ if ($sn['pub']) {
+ $this->search_names[$sn['typeid']] = array('fullname' => $sn['name'],
+ 'name' => $name,
+ 'particle' => $particle,
+ 'pub' => $sn['pub']);
} else {
- $search_names[$sn['typeid']] = array_merge($search_names[$sn['typeid']], array($name));
+ if (isset($this->search_names[$sn['typeid']])) {
+ $this->search_names[$sn['typeid']][] = $sn['name'];
+ } else {
+ $this->search_names[$sn['typeid']] = array('fullname' => $sn['name']);
+ }
}
}
}
- require_once 'name.func.inc.php';
- $sn_types_public = build_types('public');
- $sn_types_private = build_types('private');
- $full_name = build_full_name($search_names, $sn_types_public);
- $this->directory_name = build_directory_name($search_names, $sn_types_public, $full_name);
- $this->short_name = short_name($search_names, $sn_types_public);
- $this->sort_name = short_name($search_names, $sn_types_public);
- $this->public_name = build_public_name($search_names, $sn_types_public, $full_name);
- $this->private_name = $this->public_name . build_private_name($search_names, $sn_types_private);
- Platal::page()->assign('public_name', $this->public_name);
- Platal::page()->assign('private_name', $this->private_name);
+ $res = XDB::query("SELECT public_name, private_name
+ FROM profile_display
+ WHERE pid = {?}",
+ 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;
}
public function save(ProfilePage &$page, $field, $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)
WHERE s.pid = {?} AND NOT FIND_IN_SET('not_displayed', e.flags)",
S::i('uid'));
- foreach ($value as $sn) {
- if ($sn['name'] != '') {
- if ($sn['particle']) {
- list($particle, $name) = explode(' ', $sn['name'], 2);
- $particle = trim($particle) . ' ';
- if (!$name) {
- list($particle, $name) = explode('\'', $sn['name'], 2);
- $particle = trim($particle);
- }
- } else {
- $particle = '';
- $name = $sn['name'];
- }
- $name = trim($name);
- XDB::execute("INSERT INTO profile_name_search (particle, name, typeid, pid)
- VALUES ({?}, {?}, {?}, {?})",
- $particle, $name, $sn['typeid'], S::i('uid'));
- }
+ $has_new = set_alias_names($this->search_names, $sn_old);
+
+ // Only requires validation if modification in public names
+ 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." .
+ " Tu recevras un email dès que ces changements auront été effectués.");
+ } else {
+ $display_names = array();
+ build_display_names($display_names, $this->search_names, $this->private_name_end);
+ set_profile_display($display_names);
}
- XDB::execute("UPDATE profile_display
- SET public_name = {?}, private_name = {?},
- directory_name = {?}, short_name = {?}, sort_name = {?}
- WHERE pid = {?}",
- $this->public_name, $this->private_name, $this->directory_name,
- $this->short_name, $this->sort_name, S::v('uid'));
- /*require_once('user.func.inc.php');
- user_reindex(S::v('uid'));*/
}
}
<tr class="impair">
- <td class="titre">Nom d'usage :</td>
- <td>{$valid->nom_usage}</td>
+ <td class="titre">Ancien alias :</td>
+ <td>{$valid->old_alias}</td>
</tr>
<tr class="impair">
- <td class="titre">Nouvel alias :</td>
- <td>{$valid->alias|default:"<span class='erreur'>suppression</span>"}</td>
+ <td class="titre">Nouvel alias :</td>
+ <td>{$valid->new_alias}</td>
</tr>
+{foreach from=$valid->sn_new item=sn key=typeid}
<tr class="impair">
- <td class="titre">Raison :</td>
- <td>{$valid->reason}</td>
+ <td class="titre">*{$valid->sn_types.$typeid} :</td>
+ <td>{$sn.name}</td>
</tr>
-{if $valid->homonyme}
+{/foreach}
+{foreach from=$valid->sn_old item=sn key=typeid}
<tr class="impair">
- <td colspan="2">
- <span class="erreur">Probleme d'homonymie !
- <a href="profile/{$valid->homonyme}" class="popup2">{$valid->homonyme}</a>
- </span>
+ <td class="titre">†{$valid->sn_types.$typeid} :</td>
+ <td>{$sn.name}</td>
+</tr>
+{/foreach}
+<tr class="impair">
+ <td class="center" colspan="2">
+ <span class="smaller">* nouveau nom ; † ancien nom</span>
</td>
</tr>
-{/if}
{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}
+++ /dev/null
-{**************************************************************************}
-{* *}
-{* Copyright (C) 2003-2009 Polytechnique.org *}
-{* http://opensource.polytechnique.org/ *}
-{* *}
-{* This program is free software; you can redistribute it and/or modify *}
-{* it under the terms of the GNU General Public License as published by *}
-{* the Free Software Foundation; either version 2 of the License, or *}
-{* (at your option) any later version. *}
-{* *}
-{* This program is distributed in the hope that it will be useful, *}
-{* but WITHOUT ANY WARRANTY; without even the implied warranty of *}
-{* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *}
-{* GNU General Public License for more details. *}
-{* *}
-{* You should have received a copy of the GNU General Public License *}
-{* along with this program; if not, write to the Free Software *}
-{* Foundation, Inc., *}
-{* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *}
-{* *}
-{**************************************************************************}
-
-<h1>Nom d'usage</h1>
-
-{if $same}
- <p>
- Tu peux soit <a href='profile/usage'>refaire une demande de nom d'usage</a>, soit <a href='profile/edit'>retourner à l'édition de ton profil</a>.
- </p>
-{else}
- {if $myusage}
- {if $usage_old}
- <p>
- Ta demande de suppression de ton nom d'usage ainsi que de tes
- alias {$alias_old}@{#globals.mail.domain#} et
- {$alias_old}@{#globals.mail.domain2#} a bien été enregistrée.
- </p>
- {/if}
-
- {if $myusage->alias}
- <p>
- Ta demande d'ajout de ton nom d'usage a bien été enregistrée. Sa
- validation engendrera la création des alias
- <strong>{$myusage->alias}@{#globals.mail.domain#}</strong> et
- <strong>{$myusage->alias}@{#globals.mail.domain2#}</strong>.
- </p>
- {/if}
-
- <p>
- Tu recevras un email dès que les changements demandés auront été effectués.
- Encore merci de nous faire confiance pour tes emails !
- </p>
-
- {else}
-
-<p>
-Le nom d'usage est un patronyme qui doit être <strong>reconnu par la
- loi</strong> (nom du conjoint, d'un de ses parents, ou bien plus
-exceptionnellement sur changement de l'état civil, ...).
-</p>
-
-<p>
-Les surnoms sont <strong>systématiquement refusés</strong>. Pour
-utiliser une adresse personnalisée, il faut se tourner vers
-<a href="emails/alias">l'alias @{#globals.mail.alias_dom#}</a>.
-</p>
-
- <p>
- Afin d'être joignable à la fois sous ton nom à l'X et sous ton nom d'usage, tu peux
- saisir ici ce dernier. Il apparaîtra alors dans l'annuaire et tu disposeras
- des adresses correspondantes @{#globals.mail.domain#} et @{#globals.mail.domain2#}, en plus de
- celles que tu possèdes déjà.
- </p>
-
- <br />
-
-{literal}
- <form action="profile/usage" method="post" onsubmit="
- for (var i=this.reason.length-1; i>=0; i--) {
- if (this.reason[i].checked &&
- (this.reason[i].value != 'other' || this.other_reason.value != '')) {
- return true;
- }
- }
- alert('Tu dois préciser une raison motivant ta demande.');
- return false;
-">
-{/literal}
- {xsrf_token_field}
- <table class="bicol" cellpadding="4" summary="Nom d'usage">
- <tr>
- <th>Nom d'usage</th>
- </tr>
- <tr>
- <td class="center">
- <input type="text" name="nom_usage" id="nom_usage" value="{$usage_old}" />
- <script type="text/javascript">
- document.getElementById("nom_usage").focus();
- </script>
- </td>
- </tr>
- <tr>
- <th>Raison du changement de nom</th>
- </tr>
- <tr>
- <td class="rt">
- <input type="radio" name="reason" value="époux/se" id="reason_ep" onclick="this.form.other_reason.value=''" /><label for="reason_ep">Nom d'épouse / d'époux</label><br />
- {if $usage_old}
- <input type="radio" name="reason" value="divorce" id="reason_div" onclick="this.form.other_reason.value=''" /><label for="reason_div">Divorce</label><br />
- {/if}
- <input type="radio" name="reason" value="raccourci" id="reason_rac" onclick="this.form.other_reason.value=''" /><label for="reason_rac">Nom d'état civil simplifié, le nom officiel étant trop long</label><br />
- <input type="radio" name="reason" value="other" id="reason_oth" /><label for="reason_oth">Autre :</label><br />
- <input type="text" name="other_reason" onfocus="document.getElementById('reason_oth').checked='checked'" size="60" />
- </td>
- </tr>
- <tr>
- <td class="center">
- {if !$usage_old}
- <input type="submit" name="submit" value="Faire la demande" />
- {else}
- <input type="submit" name="submit" value="Modifier" />
- <input type="submit" name="submit" value="Supprimer" onClick="this.form.nom_usage.value=''" />
- {/if}
- </td>
- </tr>
- </table>
- </form>
- {/if}
-{/if}
-
-
-{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}