} else {
$sql_pub = "";
}
- $sql = "SELECT id, name
+ $sql = "SELECT id, type, name
FROM profile_name_enum
WHERE NOT FIND_IN_SET('not_displayed', flags)" . $sql_pub;
$sn_types = XDB::iterator($sql);
$types = array();
while ($sn_type = $sn_types->next()) {
if ($pub) {
- $types[$sn_type['name']] = $sn_type['id'];
+ $types[$sn_type['type']] = $sn_type['id'];
} else {
- $types[$sn_type['id']] = $sn_type['name'];
+ $types[$sn_type['id']] = $sn_type['name'];
}
}
return $types;
function build_full_name(&$search_names, &$sn_types)
{
$name = "";
- if (isset($search_names[$sn_types['Nom usuel']])) {
- $name .= $search_names[$sn_types['Nom usuel']]['fullname'] . " ("
- . $search_names[$sn_types['Nom patronymique']]['fullname'] . ")";
+ if (isset($search_names[$sn_types['lastname_ordinary']])) {
+ $name .= $search_names[$sn_types['lastname_ordinary']]['fullname'] . " ("
+ . $search_names[$sn_types['lastname']]['fullname'] . ")";
} else {
- $name .= $search_names[$sn_types['Nom patronymique']]['fullname'];
+ $name .= $search_names[$sn_types['lastname']]['fullname'];
}
- if (isset($search_names[$sn_types['Nom marital']])
- || isset($search_names[$sn_types['Pseudonyme (nom de plume)']])) {
+ if (isset($search_names[$sn_types['lastname_marital']])
+ || isset($search_names[$sn_types['pseudonym']])) {
$name .= " (";
- if (isset($search_names[$sn_types['Nom marital']])) {
+ if (isset($search_names[$sn_types['lastname_marital']])) {
$user = S::user();
if ($user->isFemale()) {
$name .= "Mme ";
} else {
$name .= "M ";
}
- $name .= $search_names[$sn_types['Nom marital']]['fullname'];
- if (isset($search_names[$sn_types['Pseudonyme (nom de plume)']])) {
+ $name .= $search_names[$sn_types['lastname_marital']]['fullname'];
+ if (isset($search_names[$sn_types['pseudonym']])) {
$name .= ", ";
}
}
- if (isset($search_names[$sn_types['Pseudonyme (nom de plume)']])) {
- $name .= $search_names[$sn_types['Pseudonyme (nom de plume)']]['fullname'];
+ if (isset($search_names[$sn_types['pseudonym']])) {
+ $name .= $search_names[$sn_types['pseudonym']]['fullname'];
}
$name .= ")";
}
function build_public_name(&$search_names, &$sn_types, $full_name)
{
- return $search_names[$sn_types['Prénom']]['fullname'] . " " . $full_name;
+ return $search_names[$sn_types['firstname']]['fullname'] . " " . $full_name;
}
function build_private_name(&$search_names, &$sn_types)
{
$name = "";
- if (isset($search_names[$sn_types['Surnom']])
- || (isset($search_names[$sn_types['Autre prénom']])
- || isset($search_names[$sn_types['Autre nom']]))) {
+ if (isset($search_names[$sn_types['nickname']])
+ || (isset($search_names[$sn_types['name_other']])
+ || isset($search_names[$sn_types['name_other']]))) {
$name .= " (";
- if (isset($search_names[$sn_types['Surnom']])) {
- $name .= "alias " . $search_names[$sn_types['Surnom']]['fullname'];
+ if (isset($search_names[$sn_types['nickname']])) {
+ $name .= "alias " . $search_names[$sn_types['nickname']]['fullname'];
$i = 0;
- while (isset($search_names[$sn_types['Surnom']][$i])) {
- $name .= ", " . $search_names[$sn_types['Surnom']][$i];
+ while (isset($search_names[$sn_types['nickname']][$i])) {
+ $name .= ", " . $search_names[$sn_types['nickname']][$i];
$i++;
}
- if (isset($search_names[$sn_types['Autre prénom']])
- || isset($search_names[$sn_types['Autre nom']])) {
+ if (isset($search_names[$sn_types['name_other']])
+ || isset($search_names[$sn_types['name_other']])) {
$name .= ", ";
}
}
- if (isset($search_names[$sn_types['Autre prénom']])) {
- $name .= "autres prénoms : " . $search_names[$sn_types['Autre prénom']]['fullname'];
+ if (isset($search_names[$sn_types['firstname_other']])) {
+ $name .= "autres prénoms : " . $search_names[$sn_types['firstname_other']]['fullname'];
$i = 0;
- while (isset($search_names[$sn_types['Autre prénom']][$i])) {
- $name .= ", " . $search_names[$sn_types['Autre prénom']][$i];
+ while (isset($search_names[$sn_types['firstname_other']][$i])) {
+ $name .= ", " . $search_names[$sn_types['firstname_other']][$i];
$i++;
}
- if (isset($search_names[$sn_types['Autre nom']])) {
+ if (isset($search_names[$sn_types['name_other']])) {
$name .= ", ";
}
}
- if (isset($search_names[$sn_types['Autre nom']])) {
- $name .= "autres noms : " . $search_names[$sn_types['Autre nom']]['fullname'];
+ if (isset($search_names[$sn_types['name_other']])) {
+ $name .= "autres noms : " . $search_names[$sn_types['name_other']]['fullname'];
$i = 0;
- while (isset($search_names[$sn_types['Autre nom']][$i])) {
- $name .= ", " . $search_names[$sn_types['Autre nom']][$i];
+ while (isset($search_names[$sn_types['name_other']][$i])) {
+ $name .= ", " . $search_names[$sn_types['name_other']][$i];
$i++;
}
}
function build_directory_name(&$search_names, &$sn_types, $full_name)
{
- return $full_name . " " . $search_names[$sn_types['Prénom']]['fullname'];
+ return $full_name . " " . $search_names[$sn_types['firstname']]['fullname'];
}
function build_short_name(&$search_names, &$sn_types, &$alias = null)
{
- if (isset($search_names[$sn_types['Nom usuel']])) {
- $lastname = $search_names[$sn_types['Nom usuel']]['fullname'];
+ if (isset($search_names[$sn_types['lastname_ordinary']])) {
+ $lastname = $search_names[$sn_types['lastname_ordinary']]['fullname'];
} else {
- $lastname = $search_names[$sn_types['Nom patronymique']]['fullname'];
+ $lastname = $search_names[$sn_types['lastname']]['fullname'];
}
- if (isset($search_names[$sn_types['Prénom usuel']])) {
- $firstname = $search_names[$sn_types['Prénom usuel']]['fullname'];
+ if (isset($search_names[$sn_types['firstname_ordinary']])) {
+ $firstname = $search_names[$sn_types['firstname_ordinary']]['fullname'];
} else {
- $firstname = $search_names[$sn_types['Prénom']]['fullname'];
+ $firstname = $search_names[$sn_types['firstname']]['fullname'];
}
if ($alias) {
$alias = make_username($firstname, $lastname);
function build_sort_name(&$search_names, &$sn_types)
{
$name = "";
- if (isset($search_names[$sn_types['Nom usuel']])) {
- $name .= $search_names[$sn_types['Nom usuel']]['name'];
+ if (isset($search_names[$sn_types['lastname_ordinary']])) {
+ $name .= $search_names[$sn_types['lastname_ordinary']]['name'];
} else {
- $name .= $search_names[$sn_types['Nom patronymique']]['name'];
+ $name .= $search_names[$sn_types['lastname']]['name'];
}
- $name .= " " . $search_names[$sn_types['Prénom']]['fullname'];
+ $name .= " " . $search_names[$sn_types['firstname']]['fullname'];
return $name;
}
VALUES ('', {?}, {?}, {?})",
$sn['fullname'], $typeid, S::i('uid'));
}
+ $i = 0;
+ while (isset($sn[$i])) {
+ XDB::execute("INSERT INTO profile_name (particle, name, typeid, pid)
+ VALUES ('', {?}, {?}, {?})",
+ $sn[$i], $typeid, S::i('uid'));
+ $i++;
+ }
}
}
if (count($sn_old) > 0) {
public function commit()
{
require_once 'notifs.inc.php';
- require_once('name.func.inc.php');
+ require_once 'name.func.inc.php';
register_watch_op($this->user->id(), WATCH_FICHE, '', 'search_names');
set_profile_display($this->display_names);
$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_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
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
+ $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)
$value[] = $sn;
$sn = $sn_all->next();
} else {
- $value[] = array('typeid' => $sn_type['id'],
- 'type' => $sn_type['name'],
- 'pub' => 1,
+ $value[] = array('typeid' => $sn_type['id'],
+ 'type' => $sn_type['type'],
+ 'type_name' => $sn_type['name'],
+ 'pub' => 1,
'has_particle' => $sn_type['has_particle'],
'always_displayed' => 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 AS s
INNER JOIN profile_name_enum AS e ON (e.id = s.typeid)
- WHERE s.pid = {?} AND e.name LIKE '%initial'
- ORDER BY e.name = 'Prénom initial'",
+ 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;
<input type="hidden" name="sn_type_{$sn_type.id}_{$i}" value="{$sn_type.pub}"/>
{/foreach}
{else}
- {$sn.type}
+ {$sn.type_name}
<input type="hidden" name="search_names[{$i}][pub]" value="{$sn.pub}"/>
<input type="hidden" name="search_names[{$i}][type]" value="{$sn.type}"/>
+ <input type="hidden" name="search_names[{$i}][type_name]" value="{$sn.type_name}"/>
<input type="hidden" name="search_names[{$i}][typeid]" value="{$sn.typeid}"/>
{/if}
</td>
id TINYINT(2) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
explanations VARCHAR(255) NOT NULL,
+ type VARCHAR(255) NOT NULL,
flags SET('has_particle', 'not_displayed', 'always_displayed', 'public') NOT NULL,
PRIMARY KEY (id),
UNIQUE (name)
) CHARSET=utf8;
-INSERT INTO profile_name_enum (name, flags, explanations)
- VALUES ('Nom patronymique', 'has_particle,always_displayed,public', 'Le nom de famille avec lequel tu es né'),
+INSERT INTO profile_name_enum (name, flags, explanations, type)
+ VALUES ('Nom patronymique', 'has_particle,always_displayed,public',
+ 'Le nom de famille avec lequel tu es né', 'lastname'),
('Nom marital', 'has_particle,always_displayed,public',
- 'Ton nom d\'épouse ou d\'époux'),
+ 'Ton nom d\'épouse ou d\'époux', 'lastname_marital'),
('Nom usuel', 'has_particle,always_displayed,public',
- 'Le nom de famille que tu utilises usuellement s\'il est différent du nom patronymique, ce peut-être une version racourcie de celui-ci, ton nom marital, une combianaison de ces deux noms...'),
- ('Prénom', 'always_displayed,public', 'Ton prénom'),
+ 'Le nom de famille que tu utilises usuellement s\'il est différent du nom patronymique, ce peut-être une version racourcie de celui-ci, ton nom marital, une combinaison de ces deux noms...',
+ 'lastname_ordinary'),
+ ('Prénom', 'always_displayed,public', 'Ton prénom', 'firstname'),
('Pseudonyme (nom de plume)', 'always_displayed,public',
- 'Pseudonyme pour les artistes, gens de lettres'),
- ('Surnom', '', 'Surnom à l\'École ou ailleurs'),
- ('Prénom usuel', 'public', 'Si tu utilises une version raccourcie, francisée... de ton prénom'),
- ('Autre prénom', '', 'Si tu as d\'autres prénoms et que tu souhaites les faire apparaître'),
- ('Autre nom', '', 'Si tu as d\'autres noms et que tu souhaites les faire apparaître'),
- ('Nom initial', 'has_particle,not_displayed,public', ''),
- ('Prénom initial', 'has_particle,not_displayed,public', '');
+ 'Pseudonyme pour les artistes, gens de lettres', 'pseudonym'),
+ ('Surnom', '', 'Surnom à l\'École ou ailleurs', 'nickname'),
+ ('Prénom usuel', 'public', 'Si tu utilises une version raccourcie, francisée... de ton prénom',
+ 'firstname_ordinary'),
+ ('Autre prénom', '', 'Si tu as d\'autres prénoms et que tu souhaites les faire apparaître',
+ 'firstname_other'),
+ ('Autre nom', '', 'Si tu as d\'autres noms et que tu souhaites les faire apparaître',
+ 'name_other'),
+ ('Nom initial', 'has_particle,not_displayed,public', '', 'name_ini'),
+ ('Prénom initial', 'has_particle,not_displayed,public', '', 'firstname_ini');
DROP TABLE IF EXISTS profile_name;