Merge branch '497-update-to-hesk-2-7-2' into '3-0-1'

Update to HESK 2.7.2

See merge request !37
merge-requests/38/head
Mike Koch 7 years ago
commit 6a42560c0c

@ -264,7 +264,7 @@ $modsForHesk_settings = mfh_getSettings();
document.getElementById('servertime').innerHTML = h + ":" + m; document.getElementById('servertime').innerHTML = h + ":" + m;
s = s + 1; s = s + 1;
today.setSeconds(s); today.setSeconds(s);
t = setTimeout('startTime()', 1000); t = setTimeout(function() { startTime(); },1000);
} }
function checkTime(i) { function checkTime(i) {
@ -591,6 +591,32 @@ $modsForHesk_settings = mfh_getSettings();
placeholder="<?php echo htmlspecialchars($hesklang['navbar_title_url']); ?>"/> placeholder="<?php echo htmlspecialchars($hesklang['navbar_title_url']); ?>"/>
</div> </div>
</div> </div>
<div class="form-group">
<label for="s_hesk_title" class="col-sm-3 control-label"><?php echo $hesklang['hesk_title']; ?>
<a href="Javascript:void(0)"
onclick="Javascript:hesk_window('<?php echo $help_folder; ?>helpdesk.html#6','400','500')"><i
class="fa fa-question-circle settingsquestionmark"></i></a></label>
<div class="col-sm-9">
<input type="text" class="form-control"
placeholder="<?php echo htmlspecialchars($hesklang['hesk_title']); ?>"
name="s_hesk_title" size="40" maxlength="255"
value="<?php echo $hesk_settings['hesk_title']; ?>"/>
</div>
</div>
<div class="form-group">
<label for="s_hesk_url" class="col-sm-3 control-label"><?php echo $hesklang['hesk_url']; ?> <a
href="Javascript:void(0)"
onclick="Javascript:hesk_window('<?php echo $help_folder; ?>helpdesk.html#7','400','500')"><i
class="fa fa-question-circle settingsquestionmark"></i></a></label>
<div class="col-sm-9">
<input type="text" class="form-control"
placeholder="<?php echo htmlspecialchars($hesklang['hesk_url']); ?>"
name="s_hesk_url" size="40" maxlength="255"
value="<?php echo $hesk_settings['hesk_url']; ?>"/>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label for="s_webmaster_email" <label for="s_webmaster_email"
class="col-sm-3 control-label"><?php echo $hesklang['email_wm']; ?> <a class="col-sm-3 control-label"><?php echo $hesklang['email_wm']; ?> <a
@ -805,32 +831,6 @@ $modsForHesk_settings = mfh_getSettings();
</div> </div>
<div class="box-body"> <div class="box-body">
<h4 class="bold"><?php echo $hesklang['hd']; ?></h4> <h4 class="bold"><?php echo $hesklang['hd']; ?></h4>
<div class="form-group">
<label for="s_hesk_title" class="col-sm-3 control-label"><?php echo $hesklang['hesk_title']; ?>
<a href="Javascript:void(0)"
onclick="Javascript:hesk_window('<?php echo $help_folder; ?>helpdesk.html#6','400','500')"><i
class="fa fa-question-circle settingsquestionmark"></i></a></label>
<div class="col-sm-9">
<input type="text" class="form-control"
placeholder="<?php echo htmlspecialchars($hesklang['hesk_title']); ?>"
name="s_hesk_title" size="40" maxlength="255"
value="<?php echo $hesk_settings['hesk_title']; ?>"/>
</div>
</div>
<div class="form-group">
<label for="s_hesk_url" class="col-sm-3 control-label"><?php echo $hesklang['hesk_url']; ?> <a
href="Javascript:void(0)"
onclick="Javascript:hesk_window('<?php echo $help_folder; ?>helpdesk.html#7','400','500')"><i
class="fa fa-question-circle settingsquestionmark"></i></a></label>
<div class="col-sm-9">
<input type="text" class="form-control"
placeholder="<?php echo htmlspecialchars($hesklang['hesk_url']); ?>"
name="s_hesk_url" size="40" maxlength="255"
value="<?php echo $hesk_settings['hesk_url']; ?>"/>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label for="s_admin_dir" class="col-sm-3 control-label"><?php echo $hesklang['adf']; ?> <a <label for="s_admin_dir" class="col-sm-3 control-label"><?php echo $hesklang['adf']; ?> <a
href="Javascript:void(0)" href="Javascript:void(0)"
@ -3843,7 +3843,7 @@ $modsForHesk_settings = mfh_getSettings();
} }
// No cached file or older than 3600 seconds, try to get an update // No cached file or older than 3600 seconds, try to get an update
$hesk_version_url = 'http://heskcom.s3.amazonaws.com/hesk_version.txt'; $hesk_version_url = 'https://hesk.com/version';
// Try using cURL // Try using cURL
if (function_exists('curl_init')) { if (function_exists('curl_init')) {
@ -3857,7 +3857,7 @@ $modsForHesk_settings = mfh_getSettings();
} }
// Try using a simple PHP function instead // Try using a simple PHP function instead
if ($latest = file_get_contents($hesk_version_url)) { if ($latest = @file_get_contents($hesk_version_url)) {
return hesk_cacheLatestVersion($latest); return hesk_cacheLatestVersion($latest);
} }

@ -52,6 +52,9 @@ $set = array();
$set['site_title'] = hesk_input(hesk_POST('s_site_title'), $hesklang['err_sname']); $set['site_title'] = hesk_input(hesk_POST('s_site_title'), $hesklang['err_sname']);
$set['site_title'] = str_replace('\\&quot;', '&quot;', $set['site_title']); $set['site_title'] = str_replace('\\&quot;', '&quot;', $set['site_title']);
$set['site_url'] = hesk_input(hesk_POST('s_site_url'), $hesklang['err_surl']); $set['site_url'] = hesk_input(hesk_POST('s_site_url'), $hesklang['err_surl']);
$set['hesk_title'] = hesk_input(hesk_POST('s_hesk_title'), $hesklang['err_htitle']);
$set['hesk_title'] = str_replace('\\&quot;', '&quot;', $set['hesk_title']);
$set['hesk_url'] = rtrim(hesk_input(hesk_POST('s_hesk_url'), $hesklang['err_hurl']), '/');
$set['webmaster_mail'] = hesk_validateEmail(hesk_POST('s_webmaster_mail'), $hesklang['err_wmmail']); $set['webmaster_mail'] = hesk_validateEmail(hesk_POST('s_webmaster_mail'), $hesklang['err_wmmail']);
$set['noreply_mail'] = hesk_validateEmail(hesk_POST('s_noreply_mail'), $hesklang['err_nomail']); $set['noreply_mail'] = hesk_validateEmail(hesk_POST('s_noreply_mail'), $hesklang['err_nomail']);
$set['noreply_name'] = hesk_input(hesk_POST('s_noreply_name')); $set['noreply_name'] = hesk_input(hesk_POST('s_noreply_name'));
@ -78,11 +81,6 @@ if (hesk_testMySQL()) {
/*** HELP DESK ***/ /*** HELP DESK ***/
/* --> Helpdesk settings */
$set['hesk_title'] = hesk_input(hesk_POST('s_hesk_title'), $hesklang['err_htitle']);
$set['hesk_title'] = str_replace('\\&quot;', '&quot;', $set['hesk_title']);
$set['hesk_url'] = rtrim(hesk_input(hesk_POST('s_hesk_url'), $hesklang['err_hurl']), '/');
// ---> check admin folder // ---> check admin folder
$set['admin_dir'] = isset($_POST['s_admin_dir']) && !is_array($_POST['s_admin_dir']) ? preg_replace('/[^a-zA-Z0-9_-]/', '', $_POST['s_admin_dir']) : 'admin'; $set['admin_dir'] = isset($_POST['s_admin_dir']) && !is_array($_POST['s_admin_dir']) ? preg_replace('/[^a-zA-Z0-9_-]/', '', $_POST['s_admin_dir']) : 'admin';
/* /*
@ -544,6 +542,8 @@ $settings_file_content = '<?php
// --> General settings // --> General settings
$hesk_settings[\'site_title\']=\'' . $set['site_title'] . '\'; $hesk_settings[\'site_title\']=\'' . $set['site_title'] . '\';
$hesk_settings[\'site_url\']=\'' . $set['site_url'] . '\'; $hesk_settings[\'site_url\']=\'' . $set['site_url'] . '\';
$hesk_settings[\'hesk_title\']=\'' . $set['hesk_title'] . '\';
$hesk_settings[\'hesk_url\']=\'' . $set['hesk_url'] . '\';
$hesk_settings[\'webmaster_mail\']=\'' . $set['webmaster_mail'] . '\'; $hesk_settings[\'webmaster_mail\']=\'' . $set['webmaster_mail'] . '\';
$hesk_settings[\'noreply_mail\']=\'' . $set['noreply_mail'] . '\'; $hesk_settings[\'noreply_mail\']=\'' . $set['noreply_mail'] . '\';
$hesk_settings[\'noreply_name\']=\'' . $set['noreply_name'] . '\'; $hesk_settings[\'noreply_name\']=\'' . $set['noreply_name'] . '\';
@ -566,8 +566,6 @@ $hesk_settings[\'db_vrsn\']=' . $set['db_vrsn'] . ';
// ==> HELP DESK // ==> HELP DESK
// --> Help desk settings // --> Help desk settings
$hesk_settings[\'hesk_title\']=\'' . $set['hesk_title'] . '\';
$hesk_settings[\'hesk_url\']=\'' . $set['hesk_url'] . '\';
$hesk_settings[\'admin_dir\']=\'' . $set['admin_dir'] . '\'; $hesk_settings[\'admin_dir\']=\'' . $set['admin_dir'] . '\';
$hesk_settings[\'attach_dir\']=\'' . $set['attach_dir'] . '\'; $hesk_settings[\'attach_dir\']=\'' . $set['attach_dir'] . '\';
$hesk_settings[\'cache_dir\']=\'' . $set['cache_dir'] . '\'; $hesk_settings[\'cache_dir\']=\'' . $set['cache_dir'] . '\';
@ -708,8 +706,8 @@ $hesk_settings[\'open_only\']=' . $set['open_only'] . ';
$hesk_settings[\'ticket_list\']=array(' . $set['ticket_list'] . '); $hesk_settings[\'ticket_list\']=array(' . $set['ticket_list'] . ');
// --> Other // --> Other
$hesk_settings[\'submittedformat\']=\'' . $set['submittedformat'] . '\'; $hesk_settings[\'submittedformat\']=' . $set['submittedformat'] . ';
$hesk_settings[\'updatedformat\']=\'' . $set['updatedformat'] . '\'; $hesk_settings[\'updatedformat\']=' . $set['updatedformat'] . ';
// ==> MISC // ==> MISC

@ -196,8 +196,7 @@ function hesk_suggestKB() {
xmlHttp.send(params); xmlHttp.send(params);
} }
setTimeout('hesk_suggestKB();', 2000); setTimeout(function() { hesk_suggestKB(); }, 2000);
} }
function hesk_suggestKBsearch(isAdmin) { function hesk_suggestKBsearch(isAdmin) {
@ -238,7 +237,7 @@ function hesk_suggestKBsearch(isAdmin) {
xmlHttp.send(params); xmlHttp.send(params);
} }
setTimeout('hesk_suggestKBsearch(' + isAdmin + ');', 2000); setTimeout(function() { hesk_suggestKBsearch(isAdmin); }, 2000);
} }
function hesk_suggestEmail(emailField, displayDiv, padDiv, isAdmin, allowMultiple) { function hesk_suggestEmail(emailField, displayDiv, padDiv, isAdmin, allowMultiple) {

@ -89,12 +89,6 @@ function hesk_kbTopArticles($how_many, $index = 1)
</thead> </thead>
<tbody> <tbody>
<?php <?php
/* Get list of articles from the database */
$res = hesk_dbQuery("SELECT `t1`.`id`,`t1`.`subject`,`t1`.`dt`, `t1`.`views`,`t1`.`sticky` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_articles` AS `t1`
LEFT JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_categories` AS `t2` ON `t1`.`catid` = `t2`.`id`
WHERE `t1`.`type`='0' AND `t2`.`type`='0'
ORDER BY `t1`.`sticky` DESC, `t1`.`views` DESC, `t1`.`art_order` ASC LIMIT " . intval($how_many));
/* If no results found end here */ /* If no results found end here */
if (hesk_dbNumRows($res) == 0) { if (hesk_dbNumRows($res) == 0) {
$colspan = ''; $colspan = '';
@ -109,7 +103,13 @@ function hesk_kbTopArticles($how_many, $index = 1)
if (!$hesk_settings['kb_views']) { if (!$hesk_settings['kb_views']) {
$colspan = 'colspan="2"'; $colspan = 'colspan="2"';
} }
// Remember what articles are printed for "Top" so we don't print them again in "Latest"
$hesk_settings['kb_top_articles_printed'] = array();
while ($article = hesk_dbFetchAssoc($res)) { while ($article = hesk_dbFetchAssoc($res)) {
$hesk_settings['kb_top_articles_printed'][] = $article['id'];
$icon = 'fa fa-file'; $icon = 'fa fa-file';
$style = ''; $style = '';
@ -176,6 +176,12 @@ function hesk_kbLatestArticles($how_many, $index = 1)
<thead> <thead>
<tr> <tr>
<?php <?php
// Don't include articles that have already been printed under "Top" articles
$sql_top = '';
if (isset($hesk_settings['kb_top_articles_printed']) && count($hesk_settings['kb_top_articles_printed'])) {
$sql_top = ' AND `t1`.`id` NOT IN ('.implode(',', $hesk_settings['kb_top_articles_printed']).')';
}
$colspan = ''; $colspan = '';
if (!$hesk_settings['kb_date']) { if (!$hesk_settings['kb_date']) {
$colspan = 'colspan="2"'; $colspan = 'colspan="2"';
@ -183,7 +189,7 @@ function hesk_kbLatestArticles($how_many, $index = 1)
/* Get list of articles from the database */ /* Get list of articles from the database */
$res = hesk_dbQuery("SELECT `t1`.* FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_articles` AS `t1` $res = hesk_dbQuery("SELECT `t1`.* FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_articles` AS `t1`
LEFT JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_categories` AS `t2` ON `t1`.`catid` = `t2`.`id` LEFT JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_categories` AS `t2` ON `t1`.`catid` = `t2`.`id`
WHERE `t1`.`type`='0' AND `t2`.`type`='0' WHERE `t1`.`type`='0' AND `t2`.`type`='0' {$sql_top}
ORDER BY `t1`.`dt` DESC LIMIT " . intval($how_many)); ORDER BY `t1`.`dt` DESC LIMIT " . intval($how_many));
/* Show number of views? */ /* Show number of views? */
@ -198,11 +204,6 @@ function hesk_kbLatestArticles($how_many, $index = 1)
</thead> </thead>
<tbody> <tbody>
<?php <?php
/* Get list of articles from the database */
$res = hesk_dbQuery("SELECT `t1`.* FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_articles` AS `t1`
LEFT JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "kb_categories` AS `t2` ON `t1`.`catid` = `t2`.`id`
WHERE `t1`.`type`='0' AND `t2`.`type`='0'
ORDER BY `t1`.`dt` DESC LIMIT " . intval($how_many));
/* If no results found end here */ /* If no results found end here */
if (hesk_dbNumRows($res) == 0) { if (hesk_dbNumRows($res) == 0) {

@ -378,12 +378,12 @@ function hesk_stripQuotedText($message)
function hesk_isReturnedEmail($tmpvar) function hesk_isReturnedEmail($tmpvar)
{ {
// Check noreply email addresses // Check noreply email addresses
if (preg_match('/not?[\-_]reply@/i', $tmpvar['email'])) { if (preg_match('/not?[\-_\.]?reply@/i', $tmpvar['email'])) {
return true; return true;
} }
// Check mailer daemon email addresses // Check mailer daemon email addresses
if (preg_match('/mail(er)?[\-_]daemon@/i', $tmpvar['email'])) { if (preg_match('/mail(er)?[\-_\.]?daemon@/i', $tmpvar['email'])) {
return true; return true;
} }

@ -25,11 +25,13 @@ if (!isset($admins)) {
} }
/* List of categories */ /* List of categories */
$orderBy = $modsForHesk_settings['category_order_column']; if ( ! isset($hesk_settings['categories'])) {
$hesk_settings['categories'] = array(); $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'); $hesk_settings['categories'] = array();
while ($row = hesk_dbFetchAssoc($res2)) { $res2 = hesk_dbQuery('SELECT `id`, `name` FROM `' . hesk_dbEscape($hesk_settings['db_pfix']) . 'categories` WHERE ' . hesk_myCategories('id') . ' ORDER BY `' . $orderBy . '` ASC');
$hesk_settings['categories'][$row['id']] = $row['name']; while ($row = hesk_dbFetchAssoc($res2)) {
$hesk_settings['categories'][$row['id']] = $row['name'];
}
} }
/* Current MySQL time */ /* Current MySQL time */

Loading…
Cancel
Save