+/**
+ * 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
+ logical, and should have been the way it was generated the first time.
+*/
+
+require_once(SM_PATH . 'functions/abook_local_file.php');
+require_once(SM_PATH . 'functions/abook_ldap_server.php');
+
+/* Use this if you wanna have a global address book */
+if (isset($address_book_global_filename)) {
+ include_once(SM_PATH . 'functions/abook_global_file.php');
+}
+
+/* Only load database backend if database is configured */
+if((isset($addrbook_dsn) && !empty($addrbook_dsn)) ||
+ (isset($addrbook_global_dsn) && !empty($addrbook_global_dsn)) ) {
+ include_once(SM_PATH . 'functions/abook_database.php');
+}
+
+/*
+ * hook allows adding different address book classes.
+ * class must follow address book class coding standards.
+ *
+ * see addressbook_backend class and functions/abook_*.php files.
+ */
+do_hook('abook_add_class');
+