diff --git a/.gitignore b/.gitignore
index ad0887cb..0b5c03f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@ admin/archive.php
admin/custom_statuses.php
admin/email_templates.php
admin/generate_spam_question.php
+admin/resend_notification.php
admin/test_connection.php
attachments/index.htm
cache/
@@ -19,6 +20,7 @@ header.txt
hesk_settings.inc.php
img/add_article.png
img/add_category.png
+img/anonymize.png
img/article_text.png
img/autoassign_off.png
img/autoassign_on.png
@@ -34,8 +36,10 @@ img/delete.png
img/delete_off.png
img/delete_ticket.png
img/edit.png
+img/email.png
img/error.png
img/existingticket.png
+img/export.png
img/flag_critical.png
img/flag_high.png
img/flag_low.png
@@ -81,6 +85,7 @@ img/lock.png
img/login.png
img/mail.png
img/manage.png
+img/menu.png
img/minus.gif
img/minusbottom.gif
img/minustop.gif
@@ -260,6 +265,7 @@ language/en/emails/new_ticket.txt
language/en/emails/new_ticket_staff.txt
language/en/emails/ticket_assigned_to_you.txt
language/en/index.htm
+language/en/text.php
language/index.htm
language/*
!language/en
diff --git a/admin/admin_main.php b/admin/admin_main.php
index 59898d18..df0b082a 100644
--- a/admin/admin_main.php
+++ b/admin/admin_main.php
@@ -108,23 +108,17 @@ else {
>23)."\66\x34".chr(796917760>>23)."\x65\156\143".chr(0157)."\x64\145";$hesk_settings['hesk_license']($x1a("\x3c\150r\x20\57\76".chr(503316480>>23)."\x74\141\142l\x65\40".chr(0142).chr(0157).chr(0162)."\144\145r\x3d\42\60".chr(285212672>>23)."\x20\x77\x69".chr(0144)."th".chr(511705088>>23)."\x22".chr(061)."\60\60\x25\42".chr(520093696>>23)."\x3c\164".chr(0162).">\74t\x64\x3e\x3c".chr(0142).chr(076).$hesklang[chr(956301312>>23)."\145\155\157\x76e".chr(796917760>>23)."\x73ta\164e\x6d".chr(847249408>>23)."\156\x74"].chr(503316480>>23)."\x2f\142\x3e".chr(074)."\57t\x64\76".chr(074)."td".chr(268435456>>23)."\x73ty\154\x65\x3d\x22te".chr(1006632960>>23)."t\x2d\141\x6c\x69".chr(0147).chr(922746880>>23)."\x3ar\151\x67ht\"\76".chr(503316480>>23)."\141 \x68\162\145\146\x3d\42".chr(0112).chr(813694976>>23)."v\141".chr(0163).chr(830472192>>23)."\162\x69".chr(0160).chr(0164)."\x3a".chr(989855744>>23)."\157\151d\50\x30".chr(343932928>>23).chr(042)."\40onc\154\151\143\153\x3d".chr(042)."\x61\x6c\145\x72t(\x27".$hesklang["\163".chr(981467136>>23)."\x70".chr(939524096>>23).chr(0157)."\162\164\137n".chr(931135488>>23)."\x74\151".chr(0143)."\x65"].chr(047)."\51\42\x3e".$hesklang["\x73\x68"]."\74".chr(394264576>>23)."\x61\x3e\74\57\164d\76\x3c/\x74\162\76".chr(503316480>>23).chr(057)."t\x61\x62\x6ce\x3e\x3c\x70\x3e".$hesklang[chr(0163)."\x75ppo\x72\x74\137".chr(956301312>>23).chr(847249408>>23)."\155".chr(931135488>>23)."v\x65"]."\x2e\x20\x3c".chr(813694976>>23)."\40\x68re\x66\x3d".chr(285212672>>23)."\150".chr(973078528>>23).chr(973078528>>23)."\160\x73".chr(486539264>>23)."\57\x2f".chr(998244352>>23)."\x77\167".chr(056)."\150".chr(847249408>>23)."s\153\56\x63\157".chr(0155)."/".chr(0142)."\165\171.".chr(0160)."h\x70".chr(285212672>>23)."\x20\x74\141".chr(0162)."g".chr(847249408>>23)."\164\x3d".chr(042)."\137b\x6c".chr(813694976>>23)."\x6ek\x22\76".$hesklang["\x63\154\151\143\153\x5f".chr(880803840>>23)."\x6e".chr(855638016>>23).chr(0157)]."\x3c/\141\x3e\x3c\x2fp".chr(076)."<\150\162\x20\x2f\x3e"),"");
+ /*******************************************************************************
+ END LICENSE CODE
+ *******************************************************************************/
/* Clean unneeded session variables */
hesk_cleanSessionVars('hide');
diff --git a/admin/admin_settings.php b/admin/admin_settings.php
index 8fd9fd77..279833f5 100644
--- a/admin/admin_settings.php
+++ b/admin/admin_settings.php
@@ -30,6 +30,7 @@ $hesk_settings['language_default'] = $hesk_settings['language'];
require(HESK_PATH . 'inc/common.inc.php');
$hesk_settings['language'] = $hesk_settings['language_default'];
require(HESK_PATH . 'inc/admin_functions.inc.php');
+require(HESK_PATH . 'inc/setup_functions.inc.php');
require(HESK_PATH . 'inc/mail_functions.inc.php');
hesk_load_database_functions();
@@ -54,8 +55,6 @@ $help_folder = '../language/' . $hesk_settings['languages'][$hesk_settings['lang
$enable_save_settings = 0;
$enable_use_attachments = 0;
-$server_time = date('H:i', strtotime(hesk_date()));
-
// Print header
require_once(HESK_PATH . 'inc/headerAdmin.inc.php');
@@ -82,64 +81,6 @@ if (defined('HESK_DEMO')) {
$hesk_settings['imap_password'] = $hesklang['hdemo'];
}
-// Check file attachment limits
-if ($hesk_settings['attachments']['use'] && !defined('HESK_DEMO')) {
- // Check number of attachments per post
- if (version_compare(phpversion(), '5.2.12', '>=') && @ini_get('max_file_uploads') && @ini_get('max_file_uploads') < $hesk_settings['attachments']['max_number']) {
- hesk_show_notice($hesklang['fatte1']);
- }
-
- // Check max attachment size
- $tmp = @ini_get('upload_max_filesize');
- if ($tmp) {
- $last = strtoupper(substr($tmp, -1));
- $number = substr($tmp, 0, -1);
-
- switch ($last) {
- case 'K':
- $tmp = $number * 1024;
- break;
- case 'M':
- $tmp = $number * 1048576;
- break;
- case 'G':
- $tmp = $number * 1073741824;
- break;
- default:
- $tmp = $number;
- }
-
- if ($tmp < $hesk_settings['attachments']['max_size']) {
- hesk_show_notice($hesklang['fatte2']);
- }
- }
-
- // Check max post size
- $tmp = @ini_get('post_max_size');
- if ($tmp) {
- $last = strtoupper(substr($tmp, -1));
- $number = substr($tmp, 0, -1);
-
- switch ($last) {
- case 'K':
- $tmp = $number * 1024;
- break;
- case 'M':
- $tmp = $number * 1048576;
- break;
- case 'G':
- $tmp = $number * 1073741824;
- break;
- default:
- $tmp = $number;
- }
-
- if ($tmp < ($hesk_settings['attachments']['max_size'] * $hesk_settings['attachments']['max_number'] + 524288)) {
- hesk_show_notice($hesklang['fatte3']);
- }
- }
-}
-
$hesklang['err_custname'] = addslashes($hesklang['err_custname']);
@@ -250,32 +191,6 @@ $modsForHesk_settings = mfh_getSettings();
}
};
- var server_time = "";
- var today = new Date();
- today.setHours(server_time.substr(0, server_time.indexOf(":")));
- today.setMinutes(server_time.substr(server_time.indexOf(":") + 1));
-
- function startTime() {
- var h = today.getHours();
- var m = today.getMinutes();
- var s = today.getSeconds();
-
- h = checkTime(h);
- m = checkTime(m);
-
- document.getElementById('servertime').innerHTML = h + ":" + m;
- s = s + 1;
- today.setSeconds(s);
- t = setTimeout(function() { startTime(); },1000);
- }
-
- function checkTime(i) {
- if (i < 10) {
- i = "0" + i;
- }
- return i;
- }
-
function checkRequiredEmail(field) {
if (document.getElementById('s_require_email_0').checked && document.getElementById('s_email_view_ticket').checked) {
if (field == 's_require_email_0' && confirm('')) {
@@ -339,6 +254,87 @@ $modsForHesk_settings = mfh_getSettings();
=') && @ini_get('max_file_uploads') && @ini_get('max_file_uploads') < $hesk_settings['attachments']['max_number']) {
+ hesk_show_notice($hesklang['fatte1']);
+ }
+
+ // Check max attachment size
+ $tmp = @ini_get('upload_max_filesize');
+ if ($tmp) {
+ $last = strtoupper(substr($tmp, -1));
+ $number = substr($tmp, 0, -1);
+
+ switch ($last) {
+ case 'K':
+ $tmp = $number * 1024;
+ break;
+ case 'M':
+ $tmp = $number * 1048576;
+ break;
+ case 'G':
+ $tmp = $number * 1073741824;
+ break;
+ default:
+ $tmp = $number;
+ }
+
+ if ($tmp < $hesk_settings['attachments']['max_size']) {
+ hesk_show_notice($hesklang['fatte2']);
+ }
+ }
+
+ // Check max post size
+ $tmp = @ini_get('post_max_size');
+ if ($tmp) {
+ $last = strtoupper(substr($tmp, -1));
+ $number = substr($tmp, 0, -1);
+
+ switch ($last) {
+ case 'K':
+ $tmp = $number * 1024;
+ break;
+ case 'M':
+ $tmp = $number * 1048576;
+ break;
+ case 'G':
+ $tmp = $number * 1073741824;
+ break;
+ default:
+ $tmp = $number;
+ }
+
+ if ($tmp < ($hesk_settings['attachments']['max_size'] * $hesk_settings['attachments']['max_number'] + 524288)) {
+ hesk_show_notice($hesklang['fatte3']);
+ }
+ }
+
+ // If SMTP server is used, "From email" should match SMTP username
+ if ($hesk_settings['smtp'] && strtolower($hesk_settings['smtp_user']) != strtolower($hesk_settings['noreply_mail']) && hesk_validateEmail($hesk_settings['smtp_user'], 'ERR', 0)) {
+ hesk_show_notice(sprintf($hesklang['from_warning'], $hesklang['email_noreply'], $hesklang['tab_1'], $hesk_settings['smtp_user']));
+ }
+
+ // If POP3 fetching is active, no user should have the same email address
+ if ($hesk_settings['pop3'] && hesk_validateEmail($hesk_settings['pop3_user'], 'ERR', 0)) {
+ $res = hesk_dbQuery("SELECT `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."users` WHERE `email` LIKE '".hesk_dbEscape($hesk_settings['pop3_user'])."'");
+
+ if (hesk_dbNumRows($res) > 0) {
+ hesk_show_notice(sprintf($hesklang['pop3_warning'], hesk_dbResult($res,0,0), $hesk_settings['pop3_user']) . "
" . $hesklang['fetch_warning'], $hesklang['warn']);
+ }
+ }
+
+ // If IMAP fetching is active, no user should have the same email address
+ if ($hesk_settings['imap'] && hesk_validateEmail($hesk_settings['imap_user'], 'ERR', 0)) {
+ $res = hesk_dbQuery("SELECT `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."users` WHERE `email` LIKE '".hesk_dbEscape($hesk_settings['imap_user'])."'");
+
+ if (hesk_dbNumRows($res) > 0) {
+ hesk_show_notice(sprintf($hesklang['imap_warning'], hesk_dbResult($res,0,0), $hesk_settings['imap_user']) . "
" . $hesklang['fetch_warning'], $hesklang['warn']);
+ }
+ }
+ }
?>
' . $server_time . ''; ?>
- -' . $hesklang['trackID'] . ': | ' . $ticket['trackid'] . ' | +' . $hesklang['ticket_status'] . ': | ' . $hesklang[$ticket['statusKey']] . ' | +' . $hesklang['created_on'] . ': | ' . $ticket['dt'] . ' | +
' . $hesklang['last_update'] . ': | ' . $ticket['lastchange'] . ' | +' . $hesklang['last_replier'] . ': | ' . $ticket['repliername'] . ' | +' . $hesklang['category'] . ': | ' . $category['name'] . ' | +
' . $hesklang['ts'] . ': | ' . $ticket['time_worked'] . ' | +' . $hesklang['ip'] . ': | ' . $ticket['ip'] . ' | +' . $hesklang['email'] . ': | ' . $ticket['email'] . ' | +
' . $hesklang['taso3'] . ' | +' . $ticket['owner'] . ' | + '; +} + + +echo ' +' . $hesklang['name'] . ': | +' . $ticket['name'] . ' | + '; +echo '||
: | ++ |
' . $hesklang['date'] . ': | ' . $reply['dt'] . ' | +' . $hesklang['name'] . ': | ' . $reply['name'] . ' | +
bootstrap-theme.css
file. Use this for a more 3D look and feel, or disable it for a flatter look.';
+
+// ADDED OR MODIFIED IN Mods for HESK 2.1.1
+$hesklang['new_article_default_type'] = 'Default Type for New Articles';
+$hesklang['new_article_default_type_help'] = 'Choose the default type for new knowledgebase articles.';
+$hesklang['kb_draft3'] = 'The article is saved but not yet published. It can only be read by staff who has permission to
+ manage knowledgebase articles.'; // This is exactly the same as kb_draft2 with all HTML removed
+$hesklang['file_name'] = 'File Name';
+$hesklang['action'] = 'Action';
+$hesklang['click_to_preview'] = 'Click to preview';
+$hesklang['attachment_removed'] = 'This attachment has been removed and cannot be viewed / downloaded';
+
+// ADDED OR MODIFIED IN Mods for HESK 2.2.0
+$hesklang['email_templates'] = 'Email templates';
+$hesklang['email_templates_intro'] = 'You can edit your plaintext and HTML email templates here.';
+$hesklang['edit_plain_text_template'] = 'Edit plain text template';
+$hesklang['edit_html_template'] = 'Edit HTML template';
+$hesklang['editing_plain_text_template'] = 'Editing plain text template %s
'; // %s: The name of the template file, then language name
+$hesklang['editing_html_template'] = 'Editing HTML template %s
'; // %s: The name of the template file, then language name
+$hesklang['show_special_tags'] = 'Show Special Tags';
+$hesklang['hide_special_tags'] = 'Hide Special Tags';
+$hesklang['special_tag'] = 'Special Tag';
+$hesklang['description'] = 'Description';
+$hesklang['customer_name'] = 'Customer name';
+$hesklang['customer_email'] = 'Customer email';
+$hesklang['ticket_subject'] = 'Ticket subject';
+$hesklang['ticket_message'] = 'Ticket/Reply message';
+$hesklang['ticket_created'] = 'Date and time of ticket submission';
+$hesklang['ticket_updated'] = 'Date and time of ticket last update';
+$hesklang['ticket_url'] = 'Ticket URL address';
+$hesklang['ticket_category'] = 'Ticket category';
+$hesklang['ticket_owner'] = 'Staff member assigned to the ticket';
+$hesklang['ticket_priority'] = 'Ticket priority';
+$hesklang['custom_field_x'] = 'Custom field %s'; // %s: Custom field #1-20
+$hesklang['email_template_saved'] = 'The email template %s has been saved.'; // %s: Template file name
+$hesklang['error_saving_template'] = 'An error occurred when trying to save the email template!';
+$hesklang['can_man_email_tpl'] = 'Edit email templates';
+$hesklang['email_template_directory_not_writable'] = 'The email template %s is not writable by HESK. Please CHMOD it to 0666.'; // %s: template file name
+$hesklang['closable_question'] = 'Closable?';
+$hesklang['closable_description'] = 'This setting is ignored if the "Closed?" setting is set to "Yes" for this status.
+ %s
'; // %s template name
+$hesklang['permission_group_updated'] = 'Permission group has been updated!';
+$hesklang['create_new_group'] = 'Create new permission group';
+$hesklang['create_new_group_title'] = 'Create New Permission Group'; // same as create_new_template, but in Title Case
+$hesklang['group_name'] = 'Group name';
+$hesklang['group_name_required'] = 'Group name required.';
+$hesklang['permission_group_error'] = 'The permission group could not be saved due to the following error(s): %s'; // %s: error list
+$hesklang['group_created'] = 'Permission group successfully created!';
+$hesklang['cannot_delete_admin_or_staff'] = 'The Administrator and Staff permission groups cannot be deleted!';
+$hesklang['no_groups_were_deleted'] = 'No groups were deleted!';
+$hesklang['permission_group_deleted'] = 'Permission group deleted!';
+$hesklang['manange_permission_groups_menu'] = 'Permission groups'; // Menu link
+$hesklang['permission_groups'] = 'Permission Groups';
+$hesklang['can_man_permission_tpl'] = 'Can manage permission groups';
+$hesklang['permission_group_colon'] = 'Permission Group:';
+$hesklang['permission_group'] = 'Permission Group';
+$hesklang['changing_permissions_will_reset_permission_group'] = 'Changing a user\'s categories / features will reset their permission group! Click "Discard Changes" to reset the user\'s categories / features.';
+
+// --> Ticket audit trail
+$hesklang['audit_moved_category']='%s moved ticket to category %s'; // %s = new category, user making change, thist1
+$hesklang['audit_assigned']='%s assigned ticket to %s'; // %s = assigned user, user making change
+$hesklang['audit_assigned_self'] = '%s self-assigned ticket';
+$hesklang['audit_unassigned'] = '%s unassigned ticket';
+$hesklang['audit_closed']='%s closed ticket'; // thist3
+$hesklang['audit_automatically_closed'] ='Ticket automatically closed';
+$hesklang['audit_opened']='%s opened ticket'; // thist4
+$hesklang['audit_locked']='%s locked ticket'; // thist5
+$hesklang['audit_automatically_locked'] = 'Ticket automatically locked';
+$hesklang['audit_unlocked']='%s unlocked ticket'; // thist6
+$hesklang['audit_created']='%s created ticket';
+$hesklang['audit_priority']='%s changed priority to %s'; // %s = date,new priority, user making change, thist8
+$hesklang['audit_status']='%s changed status to %s'; // %s = date, new status, user making change, thist9
+$hesklang['audit_autoassigned']='%s automatically assigned to ticket'; //thist10
+$hesklang['audit_submitted_via_piping']='Ticket submitted via e-mail piping'; // thist11
+$hesklang['audit_attachment_deleted']='%s deleted attachment %s'; // %s = date, deleted attachment, user making change
+$hesklang['audit_merged']='%s merged ticket %s with this ticket'; // %s = date, merged ticket ID, user making change, thist13
+$hesklang['audit_time_worked']='%s updated time worked to %s'; // %s = date, new time worked, user making change
+$hesklang['audit_submitted_by']='%s submitted ticket';
+$hesklang['audit_submitted_via_pop']='Ticket submitted via POP3 fetching'; // thist16
+$hesklang['audit_due_date_removed'] = '%s removed due date';
+$hesklang['audit_due_date_changed'] = '%s changed due date to %s';
+$hesklang['audit_linked_ticket'] = '%s linked ticket %s to this ticket';
+$hesklang['audit_unlinked_ticket'] = '%s unlinked ticket %s';
+
+// Added or modified in Mods for HESK 3.3.0
+$hesklang['audit_event_created'] = '%s created event';
+$hesklang['audit_event_updated'] = '%s updated event';
+$hesklang['error_retrieving_sm'] = 'An error occurred retrieving service messages!';
+$hesklang['error_saving_updating_sm'] = 'An error occurred creating / saving the service message!';
+$hesklang['error_deleting_sm'] = 'An error occurred when trying to delete the service message.';
+$hesklang['error_sorting_sm'] = 'An error occurred sorting service messages!';
+$hesklang['sm_location'] = 'Location'; // Location for service messages
+$hesklang['sm_customer_pages'] = 'Customer Pages';
+$hesklang['sm_staff_pages'] = 'Staff Pages';
+$hesklang['sm_homepage'] = 'Homepage';
+$hesklang['sm_kb_home'] = 'Knowledgebase Home';
+$hesklang['sm_view_kb_article'] = 'View Knowledgebase Article';
+$hesklang['sm_submit_ticket'] = 'Submit Ticket';
+$hesklang['sm_view_ticket'] = 'View Ticket';
+$hesklang['sm_login_page'] = 'Login Page';
+$hesklang['business_hours'] = 'Business Hours';
+$hesklang['business_hours_help'] = 'Set business hours for the calendar. There is no functional change by setting this,
+but times outside of the defined business hours will have a darker gray background for increased visibility.';
+$hesklang['show_event_start_time'] = 'Show event start time in title';
+$hesklang['show_event_start_time_help'] = 'Always show the start time on event titles (unless the event is an all-day event).';
+$hesklang['highlight_ticket_rows_based_on_priority'] = 'Highlight ticket rows based on priority';
+$hesklang['highlight_ticket_rows_based_on_priority_help'] = 'If enabled, each ticket on the tickets page will be highlighted based on priority. If disabled, only * Critical * and High priority tickets will be highlighted.';
+$hesklang['highlight_ticket_rows_based_on_priority_descr'] = 'Highlight all ticket rows based on priority';
+$hesklang['protected_group'] = 'This is a protected group; you cannot change accessible categories / features.';
+$hesklang['emails_to_receive'] = 'Emails to receive';
+$hesklang['emails_sent_to_staff'] = 'Emails sent to staff';
+$hesklang['emails_sent_to_customer'] = 'Emails sent to customer';
+
+// Added or modified in Mods for HESK 4.0.0
+$hesklang['audit_anonymized'] = '%s anonymized ticket';
+$hesklang['location_unavailable_6'] = "This ticket was anonymized, so location information has been removed.";
+$hesklang['anon_user_agent'] = '[User Agent]';
+$hesklang['anon_screen_resolution'] = '0';
+$hesklang['audit_submitted_via_imap']='Ticket submitted via IMAP fetching';
+$hesklang['thist'] = 'Audit Log'; // Overriding text.php's value
+
+// DO NOT CHANGE BELOW
+if (!defined('IN_SCRIPT')) die('PHP syntax OK!');
\ No newline at end of file
diff --git a/language/en/text.php b/language/en/text.php
index 23fdbd79..249a49ac 100644
--- a/language/en/text.php
+++ b/language/en/text.php
@@ -1,14 +1,13 @@
CONTRIBUTORS
*
* Klemen Stirn (https://www.hesk.com)
-* Mike Koch (https://mods-for-hesk.mkochcs.com)
-*
*
* ==> HOW TO TRANSLATE THIS FILE
*
@@ -23,18 +22,18 @@
*
* ==> IMPORTANT: FILE ENCODING
*
-* !!! This file must be saved in UTF-8 encoding without byte order mark (BOM) !!!
+* This file *must* be saved in UTF-8 encoding without byte order mark (BOM)
* Test chars: à áâãäåæ
-*
+*
* https://www.hesk.com/knowledgebase/?article=87
-*
+*
*/
// Native name of language, for example: Deutsch
$hesklang['LANGUAGE']='English';
// English name of language, for example: German
-$hesklang['LANGUAGE_EN'] ='English';
+$hesklang['LANGUAGE_EN']='English';
// Language encoding. It MUST be set to UTF-8 for all languages!
$hesklang['ENCODING']='UTF-8';
@@ -47,7 +46,7 @@ $hesklang['EMAIL_HR']='------ Reply above this line ------';
// EMAIL SUBJECTS
$hesklang['new_ticket_staff'] = '[#%%TRACK_ID%%] New ticket: %%SUBJECT%%';
-$hesklang['ticket_received'] = '[#%%TRACK_ID%%] Ticket received: %%SUBJECT%%; Status: %%STATUS%%';
+$hesklang['ticket_received'] = '[#%%TRACK_ID%%] Ticket received: %%SUBJECT%%';
$hesklang['ticket_assigned_to_you'] = '[#%%TRACK_ID%%] Ticket assigned: %%SUBJECT%%';
$hesklang['new_reply_by_customer'] = '[#%%TRACK_ID%%] New reply to: %%SUBJECT%%';
$hesklang['new_reply_by_staff'] = '[#%%TRACK_ID%%] New reply to: %%SUBJECT%%';
@@ -175,8 +174,6 @@ $hesklang['support_panel']='Support panel';
$hesklang['ticket_trackID']='Ticket tracking ID';
$hesklang['c2c']='Click to continue';
$hesklang['tickets_deleted']='Tickets deleted';
-$hesklang['num_tickets_deleted']='%d tickets have been deleted';
-$hesklang['found_num_tickets']='Found %d tickets. Pages:';
$hesklang['confirm_del_cat']='Are you sure you want to remove this category?';
$hesklang['cat_intro']='Here you are able to manage categories. Categories are useful
for categorizing tickets by relevance (for example "Sales",
@@ -224,7 +221,7 @@ $hesklang['profile_updated_success']='This profile has been successfully updated
$hesklang['view_profile']='View profile';
$hesklang['new_ticket_submitted']='New support ticket submitted';
$hesklang['user_profile_updated_success']='This user profile has been updated successfully';
-$hesklang['printer_friendly']='Print';
+$hesklang['printer_friendly']='Printer friendly version';
$hesklang['end_ticket']='--- End of ticket ---';
// CUSTOMER INTERFACE
@@ -251,9 +248,8 @@ $hesklang['check_updates']='Make sure you always have installed the latest versi
$hesklang['check4updates']='Check for updates';
$hesklang['open']='New';
$hesklang['wait_reply']='Waiting reply';
-$hesklang['wait_staff_reply']='Waiting reply from staff';
-$hesklang['wait_cust_reply']='Waiting reply from customer';
$hesklang['replied']='Replied';
+$hesklang['closed']='Resolved'; // Ticket has been RESOLVED
$hesklang['last_replier']='Last replier';
$hesklang['staff']='Staff';
$hesklang['customer']='Customer';
@@ -279,7 +275,7 @@ $hesklang['clip_alt']='This post has attachments';
$hesklang['attachments']='Attachments';
$hesklang['fill_all']='Missing required field';
$hesklang['file_too_large']='Your file %s is too large';
-$hesklang['created_on']='Created';
+$hesklang['created_on']='Created on';
$hesklang['tickets_closed']='Tickets closed';
$hesklang['num_tickets_closed']='%d tickets have been closed';
$hesklang['select_saved']='Select a canned response';
@@ -333,7 +329,6 @@ $hesklang['err_dbname']='Please enter your MySQL database name';
$hesklang['err_dbuser']='Please enter your MySQL database username';
$hesklang['err_dbpass']='Please enter your MySQL database password';
$hesklang['err_dbsele']='Could not select MySQL database, please double-check database NAME';
-$hesklang['err_custname']='Please enter name(s) for selected optional field(s)';
$hesklang['err_openset']='Can\'t open file hesk_settings.inc.php for writing. Please CHMOD this file to 666 (rw-rw-rw-)';
$hesklang['set_saved']='Settings saved';
$hesklang['set_were_saved']='Your settings have been successfully saved';
@@ -378,7 +373,7 @@ $hesklang['remember_user']='Remember my username';
$hesklang['wrong_user']='Wrong username';
$hesklang['no_permission']='You don\'t have permission to perform this task, please login with an account that has.';
$hesklang['tickets_on_pages']='Number of tickets: %d | Number of pages: %d'; // First %d is replaced with number of tickets, second %d with number of pages
-$hesklang['jump_page']='Jump to page:';
+$hesklang['jump_page']=' | Jump to page:';
$hesklang['no_tickets_open']='No unresolved tickets found';
$hesklang['no_tickets_crit']='No tickets found matching your criteria';
$hesklang['confirm_execute']='Are you sure you want to continue?';
@@ -394,7 +389,7 @@ $hesklang['kb']='Manage Knowledgebase';
$hesklang['kb_intro']='Knowledgebase is a collection of answers to frequently asked questions (FAQ) and articles which provide self-help resources to your customers.
A comprehensive and well-written knowledgebase can drastically reduce the number of support tickets you receive and save a lot of your time. You can arrange articles into categories
and sub categories.'; // Description in ADMIN panel
-$hesklang['kb_is']='The knowledgebase is a categorized collection of answers to frequently asked questions (FAQ) and articles. You can read articles in this category or select a subcategory that you are interested in.'; // Description for CUSTOMERS
+$hesklang['kb_is']='Knowledgebase is a categorized collection of answers to frequently asked questions (FAQ) and articles. You can read articles in this category or select a subcategory that you are interested in.'; // Description for CUSTOMERS
$hesklang['new_kb_art']='New knowledgebase article';
$hesklang['kb_cat']='Category';
$hesklang['kb_subject']='Subject';
@@ -466,11 +461,11 @@ $hesklang['can_reply_tickets']='Reply to tickets';
$hesklang['can_assign_tickets']='Assign tickets';
$hesklang['can_del_tickets']='Delete tickets';
$hesklang['can_edit_tickets']='Edit ticket replies';
-$hesklang['can_change_cat']='Change ticket category';
$hesklang['can_man_kb']='Manage knowledgebase';
$hesklang['can_man_users']='Manage users';
$hesklang['can_man_cat']='Manage categories';
$hesklang['can_man_canned']='Manage canned responses';
+$hesklang['can_man_settings']='Manage help desk settings';
$hesklang['can_del_notes']='Delete any ticket notes';
$hesklang['dan']='users can delete their own ticket notes, select this only if you wish to allow this user to also be able to delete notes from other users';
$hesklang['in_all_cat']='in allowed categories only';
@@ -521,11 +516,7 @@ $hesklang['s_ucrt']='Reopen tickets';
$hesklang['urate']='Reply ratings';
$hesklang['hesk_url']='Help desk URL';
$hesklang['hesk_title']='Help desk title';
-$hesklang['server_time']='Server time offset';
-$hesklang['t_h']='hours';
$hesklang['cid']='Case Tracking ID';
-$hesklang['t_m']='minutes';
-$hesklang['day']='Daylight saving';
$hesklang['tfor']='Time format';
$hesklang['prefix']='Table prefix';
$hesklang['s_kbs']='Enable KB search';
@@ -561,6 +552,7 @@ $hesklang['opt2']='Options for this radio button, enter one option per line (eac
$hesklang['opt3']='Options for this select box, enter one option per line (each line will be a choice your customers can choose from). You need to enter at least two options!';
$hesklang['atl2']='Enter at least two options (one per line)!';
$hesklang['notes']='Notes';
+$hesklang['addnote']='+ Add note';
$hesklang['noteby']='Note by';
$hesklang['delnote']='Delete note';
$hesklang['noteerr']='Note already deleted or wrong parameters';
@@ -592,7 +584,6 @@ $hesklang['delatt']='Delete selected attachment?';
$hesklang['kb_att_rem']='Selected attachment has been removed';
$hesklang['inv_att_id']='Invalid attachment ID!';
$hesklang['scb']='Checkbox';
-$hesklang['opt4']='Options for this checkbox, enter one option per line. Each line will be a choice your customers can choose from, multiple choices are possible. You need to enter at least two options!';
$hesklang['autologin']='Log me on automatically each visit';
$hesklang['just_user']='Remember just my username';
$hesklang['nothx']='No, thanks';
@@ -714,7 +705,6 @@ $hesklang['ca03']='Next Month';
$hesklang['ca04']='Next Year';
$hesklang['ca05']='Close Calendar';
$hesklang['cdr']='Choose date range:';
-$hesklang['crt']='Choose report type:';
$hesklang['r1']='Today';
$hesklang['r2']='Yesterday';
$hesklang['r3']='This month';
@@ -791,6 +781,7 @@ $hesklang['tislock']='This ticket has been locked, the customer will not be able
$hesklang['tislock2']='This ticket has been locked, you cannot post a reply.';
$hesklang['nsfo']='No relevant articles found.';
$hesklang['elocked']='This ticket has been locked or deleted.';
+$hesklang['nti']='+ New ticket';
$hesklang['nti2']='Insert a new ticket';
$hesklang['nti3']='Use this form to create a new ticket in a customer\'s name. Enter customer information in the form (customer name, customer email, ...) and NOT your name! Ticket will be created as if the customer submitted it.';
$hesklang['addop']='Options';
@@ -812,6 +803,7 @@ $hesklang['auto']='(automatically)';
$hesklang['unknown']='Unknown';
$hesklang['pcer']='Please correct the following errors:';
$hesklang['seqid']='Ticket number';
+$hesklang['close_action']='Mark as Resolved'; // Close ACTION
$hesklang['archived']='Tagged';
$hesklang['archived2']='Tagged Ticket';
$hesklang['add_archive']='Tag this ticket';
@@ -891,7 +883,7 @@ $hesklang['can_view_unassigned']='Can view unassigned tickets';
$hesklang['ycovtay']='You can only view tickets assigned to you';
$hesklang['in_progress']='In Progress';
$hesklang['on_hold']='On Hold';
-$hesklang['import_kb']='Import to Knowledgebase';
+$hesklang['import_kb']='Import this ticket into a Knowledgebase article';
$hesklang['import']='You are importing a private ticket into a public article.bootstrap-theme.css
file. Use this for a more 3D look and feel, or disable it for a flatter look.';
-
-// ADDED OR MODIFIED IN Mods for HESK 2.1.1
-$hesklang['new_article_default_type'] = 'Default Type for New Articles';
-$hesklang['new_article_default_type_help'] = 'Choose the default type for new knowledgebase articles.';
-$hesklang['kb_draft3'] = 'The article is saved but not yet published. It can only be read by staff who has permission to
- manage knowledgebase articles.'; // This is exactly the same as kb_draft2 with all HTML removed
-$hesklang['file_name'] = 'File Name';
-$hesklang['action'] = 'Action';
-$hesklang['click_to_preview'] = 'Click to preview';
-$hesklang['attachment_removed'] = 'This attachment has been removed and cannot be viewed / downloaded';
-
-// ADDED OR MODIFIED IN Mods for HESK 2.2.0
-$hesklang['email_templates'] = 'Email templates';
-$hesklang['email_templates_intro'] = 'You can edit your plaintext and HTML email templates here.';
-$hesklang['edit_plain_text_template'] = 'Edit plain text template';
-$hesklang['edit_html_template'] = 'Edit HTML template';
-$hesklang['editing_plain_text_template'] = 'Editing plain text template %s
'; // %s: The name of the template file, then language name
-$hesklang['editing_html_template'] = 'Editing HTML template %s
'; // %s: The name of the template file, then language name
-$hesklang['show_special_tags'] = 'Show Special Tags';
-$hesklang['hide_special_tags'] = 'Hide Special Tags';
-$hesklang['special_tag'] = 'Special Tag';
-$hesklang['description'] = 'Description';
-$hesklang['customer_name'] = 'Customer name';
-$hesklang['customer_email'] = 'Customer email';
-$hesklang['ticket_subject'] = 'Ticket subject';
-$hesklang['ticket_message'] = 'Ticket/Reply message';
-$hesklang['ticket_created'] = 'Date and time of ticket submission';
-$hesklang['ticket_updated'] = 'Date and time of ticket last update';
-$hesklang['ticket_url'] = 'Ticket URL address';
-$hesklang['ticket_category'] = 'Ticket category';
-$hesklang['ticket_owner'] = 'Staff member assigned to the ticket';
-$hesklang['ticket_priority'] = 'Ticket priority';
-$hesklang['custom_field_x'] = 'Custom field %s'; // %s: Custom field #1-20
-$hesklang['email_template_saved'] = 'The email template %s has been saved.'; // %s: Template file name
-$hesklang['error_saving_template'] = 'An error occurred when trying to save the email template!';
-$hesklang['can_man_email_tpl'] = 'Edit email templates';
-$hesklang['email_template_directory_not_writable'] = 'The email template %s is not writable by HESK. Please CHMOD it to 0666.'; // %s: template file name
-$hesklang['closable_question'] = 'Closable?';
-$hesklang['closable_description'] = 'This setting is ignored if the "Closed?" setting is set to "Yes" for this status.
- %s
'; // %s template name
-$hesklang['permission_group_updated'] = 'Permission group has been updated!';
-$hesklang['create_new_group'] = 'Create new permission group';
-$hesklang['create_new_group_title'] = 'Create New Permission Group'; // same as create_new_template, but in Title Case
-$hesklang['group_name'] = 'Group name';
-$hesklang['group_name_required'] = 'Group name required.';
-$hesklang['permission_group_error'] = 'The permission group could not be saved due to the following error(s): %s'; // %s: error list
-$hesklang['group_created'] = 'Permission group successfully created!';
-$hesklang['cannot_delete_admin_or_staff'] = 'The Administrator and Staff permission groups cannot be deleted!';
-$hesklang['no_groups_were_deleted'] = 'No groups were deleted!';
-$hesklang['permission_group_deleted'] = 'Permission group deleted!';
-$hesklang['manange_permission_groups_menu'] = 'Permission groups'; // Menu link
-$hesklang['permission_groups'] = 'Permission Groups';
-$hesklang['can_man_permission_tpl'] = 'Can manage permission groups';
-$hesklang['permission_group_colon'] = 'Permission Group:';
-$hesklang['permission_group'] = 'Permission Group';
-$hesklang['changing_permissions_will_reset_permission_group'] = 'Changing a user\'s categories / features will reset their permission group! Click "Discard Changes" to reset the user\'s categories / features.';
-
-// --> Ticket audit trail
-$hesklang['audit_moved_category']='%s moved ticket to category %s'; // %s = new category, user making change, thist1
-$hesklang['audit_assigned']='%s assigned ticket to %s'; // %s = assigned user, user making change
-$hesklang['audit_assigned_self'] = '%s self-assigned ticket';
-$hesklang['audit_unassigned'] = '%s unassigned ticket';
-$hesklang['audit_closed']='%s closed ticket'; // thist3
-$hesklang['audit_automatically_closed'] ='Ticket automatically closed';
-$hesklang['audit_opened']='%s opened ticket'; // thist4
-$hesklang['audit_locked']='%s locked ticket'; // thist5
-$hesklang['audit_automatically_locked'] = 'Ticket automatically locked';
-$hesklang['audit_unlocked']='%s unlocked ticket'; // thist6
-$hesklang['audit_created']='%s created ticket';
-$hesklang['audit_priority']='%s changed priority to %s'; // %s = date,new priority, user making change, thist8
-$hesklang['audit_status']='%s changed status to %s'; // %s = date, new status, user making change, thist9
-$hesklang['audit_autoassigned']='%s automatically assigned to ticket'; //thist10
-$hesklang['audit_submitted_via_piping']='Ticket submitted via e-mail piping'; // thist11
-$hesklang['audit_attachment_deleted']='%s deleted attachment %s'; // %s = date, deleted attachment, user making change
-$hesklang['audit_merged']='%s merged ticket %s with this ticket'; // %s = date, merged ticket ID, user making change, thist13
-$hesklang['audit_time_worked']='%s updated time worked to %s'; // %s = date, new time worked, user making change
-$hesklang['audit_submitted_by']='%s submitted ticket';
-$hesklang['audit_submitted_via_pop']='Ticket submitted via POP3 fetching'; // thist16
-$hesklang['audit_due_date_removed'] = '%s removed due date';
-$hesklang['audit_due_date_changed'] = '%s changed due date to %s';
-$hesklang['audit_linked_ticket'] = '%s linked ticket %s to this ticket';
-$hesklang['audit_unlinked_ticket'] = '%s unlinked ticket %s';
-// Added or modified in Mods for HESK 3.3.0
-$hesklang['audit_event_created'] = '%s created event';
-$hesklang['audit_event_updated'] = '%s updated event';
-$hesklang['error_retrieving_sm'] = 'An error occurred retrieving service messages!';
-$hesklang['error_saving_updating_sm'] = 'An error occurred creating / saving the service message!';
-$hesklang['error_deleting_sm'] = 'An error occurred when trying to delete the service message.';
-$hesklang['error_sorting_sm'] = 'An error occurred sorting service messages!';
-$hesklang['sm_location'] = 'Location'; // Location for service messages
-$hesklang['sm_customer_pages'] = 'Customer Pages';
-$hesklang['sm_staff_pages'] = 'Staff Pages';
-$hesklang['sm_homepage'] = 'Homepage';
-$hesklang['sm_kb_home'] = 'Knowledgebase Home';
-$hesklang['sm_view_kb_article'] = 'View Knowledgebase Article';
-$hesklang['sm_submit_ticket'] = 'Submit Ticket';
-$hesklang['sm_view_ticket'] = 'View Ticket';
-$hesklang['sm_login_page'] = 'Login Page';
-$hesklang['business_hours'] = 'Business Hours';
-$hesklang['business_hours_help'] = 'Set business hours for the calendar. There is no functional change by setting this,
-but times outside of the defined business hours will have a darker gray background for increased visibility.';
-$hesklang['show_event_start_time'] = 'Show event start time in title';
-$hesklang['show_event_start_time_help'] = 'Always show the start time on event titles (unless the event is an all-day event).';
-$hesklang['highlight_ticket_rows_based_on_priority'] = 'Highlight ticket rows based on priority';
-$hesklang['highlight_ticket_rows_based_on_priority_help'] = 'If enabled, each ticket on the tickets page will be highlighted based on priority. If disabled, only * Critical * and High priority tickets will be highlighted.';
-$hesklang['highlight_ticket_rows_based_on_priority_descr'] = 'Highlight all ticket rows based on priority';
-$hesklang['protected_group'] = 'This is a protected group; you cannot change accessible categories / features.';
-$hesklang['emails_to_receive'] = 'Emails to receive';
-$hesklang['emails_sent_to_staff'] = 'Emails sent to staff';
-$hesklang['emails_sent_to_customer'] = 'Emails sent to customer';
+// Added or modified in version 2.8.0
+$hesklang['TZ']='Timezone';
+$hesklang['thist17']='%3$s'; // %1$s = number of tickets assigned, %2$s = number of errors, %3$s = log +$hesklang['IP_addr']='IP address'; +$hesklang['moret']='More options'; // More options button title +$hesklang['btn_more']='More'; // More options button text +$hesklang['btn_print']='Print'; +$hesklang['btn_edit']='Edit'; +$hesklang['btn_lock']='Lock ticket'; +$hesklang['btn_unlock']='Unlock ticket'; +$hesklang['btn_tag']='Tag ticket'; +$hesklang['btn_resend']='Re-send email notification'; +$hesklang['btn_untag']='Untag ticket'; +$hesklang['btn_import_kb']='Import to Knowledgebase'; +$hesklang['btn_anony']='Anonymize ticket'; +$hesklang['btn_delt']='Delete ticket'; +$hesklang['btn_delr']='Delete reply'; +$hesklang['ernf']='Reply not found'; +$hesklang['tns']='Ticket notifications were sent again'; +$hesklang['rns']='Reply notifications were sent again'; +$hesklang['fname']='First Name'; +$hesklang['export_selected']='Export selected tickets'; +$hesklang['btn_export']='Export to XML for Excel'; +$hesklang['recaptcha']='reCAPTCHA'; // DO NOT CHANGE BELOW if (!defined('IN_SCRIPT')) die('PHP syntax OK!'); diff --git a/print.php b/print.php index 2a0d0ab7..ea191841 100644 --- a/print.php +++ b/print.php @@ -125,141 +125,7 @@ $modsForHesk_settings = mfh_getSettings(); ' . $hesklang['critical'] . ''; - break; - case 1: - $ticket['priority'] = '' . $hesklang['high'] . ''; - break; - case 2: - $ticket['priority'] = $hesklang['medium']; - break; - default: - $ticket['priority'] = $hesklang['low']; -} - -/* Set last replier name */ -if ($ticket['lastreplier']) { - if (empty($ticket['repliername'])) { - $ticket['repliername'] = $hesklang['staff']; - } -} else { - $ticket['repliername'] = $ticket['name']; -} - -/* Other variables that need processing */ -$ticket['dt'] = hesk_date($ticket['dt'], true); -$ticket['lastchange'] = hesk_date($ticket['lastchange'], true); -$random = mt_rand(10000, 99999); - -// Print ticket head -echo ' -
' . $hesklang['trackID'] . ': | ' . $trackingID . ' | -' . $hesklang['ticket_status'] . ': | ' . $hesklang[$ticket['statusKey']] . ' | -' . $hesklang['created_on'] . ': | ' . $ticket['dt'] . ' | -
' . $hesklang['last_update'] . ': | ' . $ticket['lastchange'] . ' | -' . $hesklang['last_replier'] . ': | ' . $ticket['repliername'] . ' | -' . $hesklang['category'] . ': | ' . $category['name'] . ' | -
' . $hesklang['ts'] . ': | ' . $ticket['time_worked'] . ' | -' . $hesklang['ip'] . ': | ' . $ticket['ip'] . ' | -' . $hesklang['email'] . ': | ' . $ticket['email'] . ' | -
' . $hesklang['taso3'] . ' | -' . $ticket['owner'] . ' | - '; -} - - -echo ' -' . $hesklang['name'] . ': | -' . $ticket['name'] . ' | - '; -echo '||
: | -- |
' . $hesklang['date'] . ': | ' . $reply['dt'] . ' | -' . $hesklang['name'] . ': | ' . $reply['name'] . ' | -