diff --git a/admin/admin_settings.php b/admin/admin_settings.php index b75e80be..b39c1385 100644 --- a/admin/admin_settings.php +++ b/admin/admin_settings.php @@ -839,6 +839,27 @@ if ( defined('HESK_DEMO') ) ?> +
+ +
+
+
+ '; + ?> +
+
diff --git a/admin/admin_settings_save.php b/admin/admin_settings_save.php index 66da8710..a987e284 100644 --- a/admin/admin_settings_save.php +++ b/admin/admin_settings_save.php @@ -507,6 +507,7 @@ $set['new_kb_article_visibility'] = hesk_checkMinMax( intval( hesk_POST('new_kb_ $set['mfh_attachments'] = empty($_POST['email_attachments']) ? 0 : 1; $set['show_number_merged'] = empty($_POST['show_number_merged']) ? 0 : 1; $set['request_location'] = empty($_POST['request_location']) ? 0 : 1; +$set['category_order_column'] = empty($_POST['category_order_column']) ? 'cat_order' : 'name'; if ($set['customer-email-verification-required']) { @@ -572,7 +573,10 @@ $modsForHesk_settings[\'attachments\'] = '.$set['mfh_attachments'].'; $modsForHesk_settings[\'show_number_merged\'] = '.$set['show_number_merged'].'; //-- Setting for requesting user\'s location. 0 = Disable, 1 = Enable -$modsForHesk_settings[\'request_location\'] = '.$set['request_location'].';'; +$modsForHesk_settings[\'request_location\'] = '.$set['request_location'].'; + +//-- Column to sort categories by. Can be either \'name\' or \'cat_order\' +$modsForHesk_settings[\'category_order_column\'] = \''.$set['category_order_column'].'\';'; // Write the file if ( ! file_put_contents(HESK_PATH . 'modsForHesk_settings.inc.php', $modsForHesk_file_content) ) diff --git a/admin/admin_ticket.php b/admin/admin_ticket.php index 5599d452..cf9d1a84 100644 --- a/admin/admin_ticket.php +++ b/admin/admin_ticket.php @@ -607,7 +607,8 @@ if (isset($_POST['latitude']) && isset($_POST['longitude'])) { require_once(HESK_PATH . 'inc/headerAdmin.inc.php'); /* List of categories */ -$result = hesk_dbQuery("SELECT `id`,`name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` ORDER BY `cat_order` ASC"); +$orderBy = $modsForHesk_settings['category_order_column']; +$result = hesk_dbQuery("SELECT `id`,`name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` ORDER BY `".$orderBy."` ASC"); $categories_options=''; while ($row=hesk_dbFetchAssoc($result)) { diff --git a/admin/export.php b/admin/export.php index aa0d9ae2..c9a2db84 100644 --- a/admin/export.php +++ b/admin/export.php @@ -36,6 +36,7 @@ define('HESK_PATH','../'); /* Get all the required files and functions */ require(HESK_PATH . 'hesk_settings.inc.php'); +require(HESK_PATH . 'modsForHesk_settings.inc.php'); require(HESK_PATH . 'inc/common.inc.php'); require(HESK_PATH . 'inc/admin_functions.inc.php'); require(HESK_PATH . 'inc/reporting_functions.inc.php'); @@ -326,7 +327,8 @@ $can_view_unassigned = hesk_checkPermission('can_view_unassigned',0); // Category options $category_options = ''; $my_cat = array(); -$res2 = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE " . hesk_myCategories('id') . " ORDER BY `cat_order` ASC"); +$orderBy = $modsForHesk_settings['category_order_column']; +$res2 = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE " . hesk_myCategories('id') . " ORDER BY `".$orderBy."` ASC"); while ($row=hesk_dbFetchAssoc($res2)) { $my_cat[$row['id']] = hesk_msgToPlain($row['name'], 1); diff --git a/admin/manage_categories.php b/admin/manage_categories.php index 2afc7b0f..12c6f337 100644 --- a/admin/manage_categories.php +++ b/admin/manage_categories.php @@ -37,6 +37,7 @@ define('HESK_PATH','../'); /* Get all the required files and functions */ require(HESK_PATH . 'hesk_settings.inc.php'); +require(HESK_PATH . 'modsForHesk_settings.inc.php'); require(HESK_PATH . 'inc/common.inc.php'); require(HESK_PATH . 'inc/admin_functions.inc.php'); hesk_load_database_functions(); @@ -87,8 +88,9 @@ else {return false;} //--> - 1) + if ($orderBy != 'name' && $num > 1) { if ($j == 1) { diff --git a/admin/manage_permission_templates.php b/admin/manage_permission_templates.php index b8e1bcb6..55f0b773 100644 --- a/admin/manage_permission_templates.php +++ b/admin/manage_permission_templates.php @@ -37,6 +37,7 @@ define('HESK_PATH','../'); /* Get all the required files and functions */ require(HESK_PATH . 'hesk_settings.inc.php'); +require(HESK_PATH . 'modsForHesk_settings.inc.php'); require(HESK_PATH . 'inc/common.inc.php'); require(HESK_PATH . 'inc/admin_functions.inc.php'); hesk_load_database_functions(); @@ -81,7 +82,8 @@ else {return false;} array_push($templates, $row); } $featureArray = hesk_getFeatureArray(); - $res = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` ORDER BY `name` ASC"); + $orderBy = $modsForHesk_settings['category_order_column']; + $res = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` ORDER BY `".$orderBy."` ASC"); $categories = array(); while ($row = hesk_dbFetchAssoc($res)) { array_push($categories, $row); diff --git a/admin/manage_users.php b/admin/manage_users.php index 24ab1842..0deacacf 100644 --- a/admin/manage_users.php +++ b/admin/manage_users.php @@ -37,6 +37,7 @@ define('HESK_PATH','../'); /* Get all the required files and functions */ require(HESK_PATH . 'hesk_settings.inc.php'); +require(HESK_PATH . 'modsForHesk_settings.inc.php'); require(HESK_PATH . 'inc/common.inc.php'); require(HESK_PATH . 'inc/admin_functions.inc.php'); require(HESK_PATH . 'inc/profile_functions.inc.php'); @@ -93,8 +94,9 @@ $default_userdata = array( ); /* A list of all categories */ +$orderBy = $modsForHesk_settings['category_order_column']; $hesk_settings['categories'] = array(); -$res = hesk_dbQuery('SELECT `id`,`name` FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` ORDER BY `cat_order` ASC'); +$res = hesk_dbQuery('SELECT `id`,`name` FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` ORDER BY `'.$orderBy.'` ASC'); while ($row=hesk_dbFetchAssoc($res)) { if ( hesk_okCategory($row['id'], 0) ) diff --git a/admin/new_ticket.php b/admin/new_ticket.php index deff1318..c80e0a54 100644 --- a/admin/new_ticket.php +++ b/admin/new_ticket.php @@ -209,7 +209,8 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); } // List categories - $result = hesk_dbQuery('SELECT * FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` ORDER BY `cat_order` ASC'); + $orderByColumn = $modsForHesk_settings['category_order_column']; + $result = hesk_dbQuery('SELECT * FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` ORDER BY `'.$orderByColumn.'` ASC'); while ($row=hesk_dbFetchAssoc($result)) { if (isset($_SESSION['as_category']) && $_SESSION['as_category'] == $row['id']) {$selected = ' selected="selected"';} diff --git a/inc/ticket_list.inc.php b/inc/ticket_list.inc.php index 90e8289c..762c6896 100644 --- a/inc/ticket_list.inc.php +++ b/inc/ticket_list.inc.php @@ -47,8 +47,9 @@ if (!isset($admins)) } /* List of categories */ +$orderBy = $modsForHesk_settings['category_order_column']; $hesk_settings['categories'] = array(); -$res2 = hesk_dbQuery('SELECT `id`, `name` FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` WHERE ' . hesk_myCategories('id') . ' ORDER BY `cat_order` ASC'); +$res2 = hesk_dbQuery('SELECT `id`, `name` FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` WHERE ' . hesk_myCategories('id') . ' ORDER BY `'.$orderBy.'` ASC'); while ($row=hesk_dbFetchAssoc($res2)) { $hesk_settings['categories'][$row['id']] = $row['name']; diff --git a/index.php b/index.php index 47d0946d..bdc5fbc6 100644 --- a/index.php +++ b/index.php @@ -224,7 +224,8 @@ if ( ! isset($_SESSION['c_category']) && ! $hesk_settings['select_cat']) // Get categories hesk_dbConnect(); - $res = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE `type`='0' ORDER BY `cat_order` ASC"); + $orderBy = $modsForHesk_settings['category_order_column']; + $res = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE `type`='0' ORDER BY `".$orderBy."` ASC"); if (hesk_dbNumRows($res) == 1) { diff --git a/language/en/text.php b/language/en/text.php index ea9a41a6..98f8ef26 100644 --- a/language/en/text.php +++ b/language/en/text.php @@ -21,6 +21,13 @@ $hesklang['_COLLATE']='utf8_unicode_ci'; // This is the email break line that will be used in email piping $hesklang['EMAIL_HR']='------ Reply above this line ------'; +// ADDED OR MODIFIED IN Mods for HESK 2.4.0 +$hesklang['sort_by_user_defined_order'] = 'Sort by user-defined order'; +$hesklang['sort_alphabetically'] = 'Sort alphabetically'; +$hesklang['category_sort'] = 'Category Sorting'; +$hesklang['category_sort_help'] = 'Determines if categories shown on the manage categories page and all dropdowns are sorted by the user-defined order (default), or +sorted alphabetically.'; + // ADDED OR MODIFIED IN Mods for HESK 2.3.0 $hesklang['sm_icon'] = 'Icon'; $hesklang['sm_icon_type'] = 'Icon Type'; diff --git a/modsForHesk_settings.inc.php b/modsForHesk_settings.inc.php index 3406ac42..0c68bc26 100644 --- a/modsForHesk_settings.inc.php +++ b/modsForHesk_settings.inc.php @@ -46,4 +46,7 @@ $modsForHesk_settings['attachments'] = 0; $modsForHesk_settings['show_number_merged'] = 1; //-- Setting for requesting user's location. 0 = Disable, 1 = Enable -$modsForHesk_settings['request_location'] = 0; \ No newline at end of file +$modsForHesk_settings['request_location'] = 0; + +//-- Column to sort categories by. Can be either 'name' or 'cat_order' +$modsForHesk_settings['category_order_column'] = 'cat_order'; \ No newline at end of file