From 3ba2fdf671df0f9eb83fef20ce7e77e17324f035 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Mon, 21 Nov 2011 11:34:50 +0100 Subject: [PATCH] Provides generic functions to build full and directory names. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- include/name.func.inc.php | 22 +++++++++++++++++++--- modules/admin.php | 18 ++++++++---------- modules/xnet.php | 4 ++-- modules/xnetgrp.php | 30 ++++++++++++++---------------- 4 files changed, 43 insertions(+), 31 deletions(-) diff --git a/include/name.func.inc.php b/include/name.func.inc.php index 3aecf92..7dd3687 100644 --- a/include/name.func.inc.php +++ b/include/name.func.inc.php @@ -67,10 +67,10 @@ function build_display_names(array $public_names, array $private_names, $isFemal $firstname = build_first_name($public_names); $display_names = array(); - $display_names['public_name'] = $firstname . ' ' . $full_last_name; + $display_names['public_name'] = build_full_name($firstname, $full_last_name); $display_names['private_name'] = $display_names['public_name'] . $private_last_name_end; - $display_names['directory_name'] = $full_last_name . ' ' . $firstname; - $display_names['short_name'] = $firstname . ' ' . $short_last_name; + $display_names['directory_name'] = build_directory_name($firstname, $full_last_name); + $display_names['short_name'] = build_full_name($firstname, $short_last_name); $display_names['sort_name'] = $short_last_name . ' ' . $firstname; return $display_names; @@ -127,6 +127,22 @@ function build_private_name(array $private_names) return ' (' . implode(', ', $names_array) . ')'; } +function build_directory_name($firstname, $lastname) +{ + if ($firstname == '') { + return mb_strtoupper($lastname); + } + return mb_strtoupper($lastname) . ' ' . $firstname; +} + +function build_full_name($firstname, $lastname) +{ + if ($firstname == '') { + return $lastname; + } + return $firstname . ' ' . $lastname; +} + /** Splits a name into tokens, as used in search_name. * Used for search_name rebuilding and for queries. */ diff --git a/modules/admin.php b/modules/admin.php index 8a53ba4..db8fae5 100644 --- a/modules/admin.php +++ b/modules/admin.php @@ -464,13 +464,11 @@ class AdminModule extends PLModule $name_update = true; } if ($name_update) { - if (Post::s('type') != 'virtual') { - $to_update['full_name'] = $firstname . ' ' . $lastname; - $to_update['directory_name'] = $lastname . ' ' . $firstname; - } else { - $to_update['full_name'] = $lastname; - $to_update['directory_name'] = $lastname; + if (Post::s('type') == 'virtual') { + $firstname = ''; } + $to_update['full_name'] = build_full_name($firstname, $lastname); + $to_update['directory_name'] = build_directory_name($firstname, $lastname); } if (Post::s('display_name') != $user->displayName()) { $to_update['display_name'] = Post::s('display_name'); @@ -866,8 +864,8 @@ class AdminModule extends PLModule $lastname = capitalize_name($infos[0]); $firstname = capitalize_name($infos[1]); if (!is_null($sex)) { - $fullName = $firstname . ' ' . $lastname; - $directoryName = $lastname . ' ' . $firstname; + $fullName = build_full_name($firstname, $lastname); + $directoryName = build_directory_name($firstname, $lastname); $birthDate = self::formatBirthDate($infos[2]); if ($type == 'x') { $xorgId = Profile::getXorgId($infos[4]); @@ -919,8 +917,8 @@ class AdminModule extends PLModule if (!is_null($sex)) { $lastname = capitalize_name($infos[0]); $firstname = capitalize_name($infos[1]); - $fullName = $firstname . ' ' . $lastname; - $directoryName = $lastname . ' ' . $firstname; + $fullName = build_full_name($firstname, $lastname); + $directoryName = build_directory_name($firstname, $lastname); XDB::execute('INSERT INTO accounts (hruid, type, is_admin, state, email, full_name, directory_name, display_name, lastname, firstname, sex) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', diff --git a/modules/xnet.php b/modules/xnet.php index cb3e7f6..4dbab88 100644 --- a/modules/xnet.php +++ b/modules/xnet.php @@ -256,8 +256,8 @@ class XnetModule extends PLModule // Update user info $lastname = capitalize_name(Post::t('lastname')); $firstname = capitalize_name(Post::t('firstname')); - $full_name = $firstname . ' ' . $lastname; - $directory_name = $lastname . ' ' . $firstname; + $full_name = build_full_name($firstname, $lastname); + $directory_name = build_directory_name($firstname, $lastname); XDB::query('UPDATE accounts SET full_name = {?}, directory_name = {?}, display_name = {?}, firstname = {?}, lastname = {?}, sex = {?} diff --git a/modules/xnetgrp.php b/modules/xnetgrp.php index 62775829..11524dd 100644 --- a/modules/xnetgrp.php +++ b/modules/xnetgrp.php @@ -514,17 +514,17 @@ class XnetGrpModule extends PLModule continue; } + require_once 'name.func.inc.php'; $parts = explode('.', $local_part); if (count($parts) == 1) { - $lastname = $display_name = $full_name = $directory_name = ucfirst($local_part); + $lastname = $display_name = capitalize_name($mbox); $firstname = ''; } else { - $firstname = ucfirst($parts[0]); - $lastname = ucwords(implode(' ', array_slice($parts, 1))); - $display_name = $firstname; - $full_name = $firstname . ' ' . $lastname; - $directory_name = strtoupper($lastname) . ' ' . $firstname; + $display_name = $firstname = capitalize_name($parts[0]); + $lastname = capitalize_name(implode(' ', array_slice($parts, 1))); } + $full_name = build_full_name($firstname, $lastname); + $directory_name = build_directory_name($firstname, $lastname); XDB::execute('INSERT INTO accounts (hruid, display_name, full_name, directory_name, firstname, lastname, email, type, state) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, \'xnet\', \'disabled\')', $hruid, $display_name, $full_name, $directory_name, $firstname, $lastname, $email); @@ -949,15 +949,14 @@ class XnetGrpModule extends PLModule require_once 'name.func.inc.php'; $parts = explode('.', $mbox); if (count($parts) == 1) { - $lastname = $display_name = $full_name = $directory_name = capitalize_name($mbox); + $lastname = $display_name = capitalize_name($mbox); $firstname = ''; } else { - $firstname = capitalize_name($parts[0]); + $display_name = $firstname = capitalize_name($parts[0]); $lastname = capitalize_name(implode(' ', array_slice($parts, 1))); - $display_name = $firstname; - $full_name = $firstname . ' ' . $lastname; - $directory_name = $lastname . ' ' . $firstname; } + $full_name = build_full_name($firstname, $lastname); + $directory_name = build_directory_name($firstname, $lastname); XDB::execute('INSERT INTO accounts (hruid, display_name, full_name, directory_name, firstname, lastname, email, type, state) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, \'xnet\', \'disabled\')', $hruid, $display_name, $full_name, $directory_name, $firstname, $lastname, $email); @@ -1235,8 +1234,9 @@ class XnetGrpModule extends PLModule $mmlist = new MMList(S::user(), $globals->asso('mail_domain')); if (Post::has('change')) { - require_once 'emails.inc.php'; S::assert_xsrf_token(); + require_once 'emails.inc.php'; + require_once 'name.func.inc.php'; // Convert user status to X if (!Post::blank('login_X')) { @@ -1251,13 +1251,11 @@ class XnetGrpModule extends PLModule $lastname = capitalize_name(Post::t('lastname')); if (Post::s('type') != 'virtual') { $firstname = capitalize_name(Post::t('firstname')); - $full_name = $firstname . ' ' . $lastname; - $directory_name = $lastname . ' ' . $firstname; } else { $firstname = ''; - $full_name = $lastname; - $directory_name = $lastname; } + $full_name = build_full_name($firstname, $lastname); + $directory_name = build_directory_name($firstname, $lastname); XDB::query('UPDATE accounts SET full_name = {?}, directory_name = {?}, display_name = {?}, firstname = {?}, lastname = {?}, sex = {?}, type = {?} -- 2.1.4