Adds sort_name to account names.
authorStéphane Jacob <sj@m4x.org>
Mon, 21 Nov 2011 11:57:02 +0000 (12:57 +0100)
committerStéphane Jacob <sj@m4x.org>
Mon, 28 Nov 2011 14:05:30 +0000 (15:05 +0100)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
classes/profile.php
include/name.func.inc.php
modules/admin.php
modules/xnet.php
modules/xnetgrp.php
upgrade/1.1.5/01_names.sql

index 104702b..b11e31d 100644 (file)
@@ -1227,18 +1227,19 @@ class Profile implements PlExportable
      */
     public static function getAccountEquivalentName($name)
     {
-        switch ($name)
-        {
-        case self::DN_DIRECTORY:
-        case self::DN_SORT:
+        switch ($name) {
+          case self::DN_DIRECTORY:
             return 'directory_name';
-        case self::DN_FULL:
-        case self::DN_PUBLIC:
+          case self::DN_SORT:
+            return 'sort_name';
+          case self::DN_FULL:
+          case self::DN_PUBLIC:
+          case self::DN_PRIVATE:
+          case self::DN_SHORT:
             return 'full_name';
-        case self::DN_PRIVATE:
-        case self::DN_SHORT:
-        case self::DN_YOURSELF:
-        default:
+          case self::DN_YOURSELF:
+            return 'display_name';
+          default:
             return 'display_name';
         }
     }
index 39b2bfe..9e66232 100644 (file)
@@ -194,7 +194,7 @@ function update_account_from_profile($uid)
               INNER JOIN  profile_display      AS pd  ON (pd.pid = ap.pid)
                      SET  a.lastname = IF(ppn.lastname_ordinary = '', ppn.lastname_main, ppn.lastname_ordinary),
                           a.firstname = IF(ppn.firstname_ordinary = '', ppn.firstname_main, ppn.firstname_ordinary),
-                          a.full_name = pd.short_name, a.directory_name = pd.directory_name
+                          a.full_name = pd.short_name, a.directory_name = pd.directory_name, a.sort_name = pd.sort_name
                    WHERE  a.uid = {?}",
                  $uid);
 }
index db8fae5..e034bca 100644 (file)
@@ -469,6 +469,7 @@ class AdminModule extends PLModule
                     }
                     $to_update['full_name'] = build_full_name($firstname, $lastname);
                     $to_update['directory_name'] = build_directory_name($firstname, $lastname);
+                    $to_update['sort_name'] = build_sort_name($firstname, $lastname);
                 }
                 if (Post::s('display_name') != $user->displayName()) {
                     $to_update['display_name'] = Post::s('display_name');
@@ -866,6 +867,7 @@ class AdminModule extends PLModule
                         if (!is_null($sex)) {
                             $fullName = build_full_name($firstname, $lastname);
                             $directoryName = build_directory_name($firstname, $lastname);
+                            $sortName = build_sort_name($firstname, $lastname);
                             $birthDate = self::formatBirthDate($infos[2]);
                             if ($type == 'x') {
                                 $xorgId = Profile::getXorgId($infos[4]);
@@ -890,14 +892,14 @@ class AdminModule extends PLModule
                             XDB::execute('INSERT INTO  profile_display (pid, yourself, public_name, private_name,
                                                                         directory_name, short_name, sort_name, promo)
                                                VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
-                                         $pid, $firstname, $fullName, $fullName, $directoryName, $fullName, $directoryName, $promo);
+                                         $pid, $firstname, $fullName, $fullName, $directoryName, $fullName, $sortName, $promo);
                             XDB::execute('INSERT INTO  profile_education (id, pid, eduid, degreeid, entry_year, grad_year, promo_year, flags)
                                                VALUES  (100, {?}, {?}, {?}, {?}, {?}, {?}, \'primary\')',
                                          $pid, $eduSchools[Profile::EDU_X], $degreeid, $entry_year, $grad_year, $promotion);
                             XDB::execute('INSERT INTO  accounts (hruid, type, is_admin, state, full_name, directory_name,
-                                                                 display_name, lastname, firstname, sex, best_domain)
-                                               VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
-                                         $infos['hrid'], $type, 0, 'pending', $fullName, $directoryName,
+                                                                 display_name, sort_name, lastname, firstname, sex, best_domain)
+                                               VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
+                                         $infos['hrid'], $type, 0, 'pending', $fullName, $directoryName, $sortName,
                                          $firstname, $lastname, $firstname, $sex, $best_domain);
                             $uid = XDB::insertId();
                             XDB::execute('INSERT INTO  account_profiles (uid, pid, perms)
@@ -919,11 +921,12 @@ class AdminModule extends PLModule
                             $firstname = capitalize_name($infos[1]);
                             $fullName = build_full_name($firstname, $lastname);
                             $directoryName = build_directory_name($firstname, $lastname);
+                            $sortName = build_sort_name($firstname, $lastname);
                             XDB::execute('INSERT INTO  accounts (hruid, type, is_admin, state, email, full_name, directory_name,
-                                                                 display_name, lastname, firstname, sex)
-                                               VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
+                                                                 sort_name, display_name, lastname, firstname, sex)
+                                               VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
                                          $infos['hrid'], $type, 0, 'pending', $infos[2], $fullName, $directoryName,
-                                         $firstname, $lastname, $firstname, $sex);
+                                         $sortName ,$firstname, $lastname, $firstname, $sex);
                             $newAccounts[$infos['hrid']] = $fullName;
                         }
                     }
index 4dbab88..6964996 100644 (file)
@@ -258,11 +258,12 @@ class XnetModule extends PLModule
             $firstname = capitalize_name(Post::t('firstname'));
             $full_name = build_full_name($firstname, $lastname);
             $directory_name = build_directory_name($firstname, $lastname);
+            $sort_name = build_sort_name($firstname, $lastname);
             XDB::query('UPDATE  accounts
-                           SET  full_name = {?}, directory_name = {?}, display_name = {?},
+                           SET  full_name = {?}, directory_name = {?}, sort_name = {?}, display_name = {?},
                                 firstname = {?}, lastname = {?}, sex = {?}
                          WHERE  uid = {?}',
-                       $full_name, $directory_name, Post::t('display_name'),
+                       $full_name, $directory_name, $sort_name, Post::t('display_name'),
                        Post::t('firstname'), Post::t('lastname'),
                        (Post::t('sex') == 'male') ? 'male' : 'female', $user->id());
 
index 11524dd..96fd4c6 100644 (file)
@@ -525,9 +525,11 @@ class XnetGrpModule extends PLModule
                 }
                 $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);
+                $sort_name = build_sort_name($firstname, $lastname);
+                XDB::execute('INSERT INTO  accounts (hruid, display_name, full_name, directory_name, sort_name,
+                                                     firstname, lastname, email, type, state)
+                                   VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, \'xnet\', \'disabled\')',
+                             $hruid, $display_name, $full_name, $directory_name, $sort_name, $firstname, $lastname, $email);
                 $uid = XDB::insertId();
                 XDB::execute('INSERT INTO  group_members (asso_id, uid)
                                    VALUES  ({?}, {?})',
@@ -957,9 +959,11 @@ class XnetGrpModule extends PLModule
                     }
                     $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);
+                    $sort_name = build_sort_name($firstname, $lastname);
+                    XDB::execute('INSERT INTO  accounts (hruid, display_name, full_name, directory_name, sort_name,
+                                                         firstname, lastname, email, type, state)
+                                       VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, \'xnet\', \'disabled\')',
+                                 $hruid, $display_name, $full_name, $directory_name, $sort_name, $firstname, $lastname, $email);
                     $user = User::getSilent($hruid);
                 }
 
@@ -1256,11 +1260,12 @@ class XnetGrpModule extends PLModule
                 }
                 $full_name = build_full_name($firstname, $lastname);
                 $directory_name = build_directory_name($firstname, $lastname);
+                $sort_name = build_sort_name($firstname, $lastname);
                 XDB::query('UPDATE  accounts
-                               SET  full_name = {?}, directory_name = {?}, display_name = {?},
+                               SET  full_name = {?}, directory_name = {?}, sort_name = {?}, display_name = {?},
                                     firstname = {?}, lastname = {?}, sex = {?}, type = {?}
                              WHERE  uid = {?}',
-                           $full_name, $directory_name, Post::t('display_name'), $firstname, $lastname,
+                           $full_name, $directory_name, $sort_name, Post::t('display_name'), $firstname, $lastname,
                            (Post::t('sex') == 'male') ? 'male' : 'female',
                            (Post::t('type') == 'xnet') ? 'xnet' : 'virtual', $user->id());
             }
index 6cf541c..1f82d0c 100644 (file)
@@ -1,3 +1,4 @@
 ALTER TABLE profile_public_names DROP COLUMN particles;
+ALTER TABLE accounts ADD COLUMN sort_name VARCHAR(255) DEFAULT NULL AFTER directory_name;
 
 -- vim:set syntax=mysql: