adding address book sorting function
authortokul <tokul@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 18 Apr 2004 10:28:38 +0000 (10:28 +0000)
committertokul <tokul@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 18 Apr 2004 10:28:38 +0000 (10:28 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@7143 7612ce4b-ef26-0410-bec9-ea0150e637f0

functions/addressbook.php

index a5013808026e0b01f0a107303a7c2e4003c0fefa..705742df6bbd111ec26dab27f38b44f31b360f6e 100644 (file)
@@ -546,8 +546,12 @@ class addressbook_backend {
 
 }
 
-/* Sort array by the key "name" */
+/**
+ * Sort array by the key "name"
+ */
 function alistcmp($a,$b) {
+    $abook_sort=get_abook_sort();
+
     if ($a['backend'] > $b['backend']) {
         return 1;
     } else {
@@ -555,9 +559,31 @@ function alistcmp($a,$b) {
             return -1;
         }
     }
-    return (strtolower($a['name']) > strtolower($b['name'])) ? 1 : -1;
+    return (strtolower($a[$abook_sort]) > strtolower($b[$abook_sort])) ? 1 : -1;
 }
 
+/**
+ * Address book sorting order
+ *
+ * returns name of field that should be used for sorting.
+ * @return string name of address book field
+ */
+function get_abook_sort() {
+    global $data_dir, $username;
+
+    /* get sorting order */
+    if(sqgetGlobalVar('abook_sort', $abook_sort,SQ_GET)) {
+       sqgetGlobalVar('abook_sort', $abook_sort,SQ_GET);
+       setPref($data_dir, $username, 'abook_sort', $abook_sort);
+    } else {
+       $abook_sort = getPref($data_dir, $username, 'abook_sort', 'name');
+    }
+
+    if ($abook_sort != "nickname" && $abook_sort != "email" && $abook_sort != "label")
+        $abook_sort = "name";
+
+    return $abook_sort;
+}
 
 /*
   PHP 5 requires that the class be made first, which seems rather