RC1 changes
This commit is contained in:
parent
abedb2269a
commit
e35dc66756
@ -465,6 +465,31 @@ $modsForHesk_settings = mfh_getSettings();
|
|||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="text-right">
|
||||||
|
/<?php echo $hesk_settings['cache_dir']; ?>
|
||||||
|
</td>
|
||||||
|
<?php
|
||||||
|
$attachmentsExist = is_dir(HESK_PATH . $hesk_settings['cache_dir']);
|
||||||
|
$attachmentsWritable = is_writable(HESK_PATH . $hesk_settings['cache_dir']);
|
||||||
|
$cellClass = $attachmentsExist && $attachmentsWritable ? 'success' : 'danger';
|
||||||
|
?>
|
||||||
|
<td class="pad-right-10 <?php echo $cellClass; ?>">
|
||||||
|
<?php
|
||||||
|
if ($attachmentsExist) {
|
||||||
|
echo '<span class="success">' . $hesklang['exists'] . '</span>, ';
|
||||||
|
if ($attachmentsWritable) {
|
||||||
|
$enable_use_attachments = 1;
|
||||||
|
echo '<span class="success">' . $hesklang['writable'] . '</span>';
|
||||||
|
} else {
|
||||||
|
echo '<span class="error">' . $hesklang['not_writable'] . '</span><br>' . $hesklang['e_cdir'];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo '<span class="error">' . $hesklang['no_exists'] . '</span>, <span class="error">' . $hesklang['not_writable'] . '</span><br>' . $hesklang['e_cdir'];
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -798,6 +823,20 @@ $modsForHesk_settings = mfh_getSettings();
|
|||||||
value="<?php echo $hesk_settings['attach_dir']; ?>"/>
|
value="<?php echo $hesk_settings['attach_dir']; ?>"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="s_cache_dir"
|
||||||
|
class="col-sm-3 control-label"><?php echo $hesklang['cf']; ?> <a
|
||||||
|
href="Javascript:void(0)"
|
||||||
|
onclick="Javascript:hesk_window('<?php echo $help_folder; ?>helpdesk.html#77','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['ticket_attach_dir']); ?>"
|
||||||
|
name="s_cache_dir" size="40" maxlength="255"
|
||||||
|
value="<?php echo $hesk_settings['cache_dir']; ?>"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="s_max_listings"
|
<label for="s_max_listings"
|
||||||
class="col-sm-3 control-label"><?php echo $hesklang['max_listings']; ?> <a
|
class="col-sm-3 control-label"><?php echo $hesklang['max_listings']; ?> <a
|
||||||
@ -3676,8 +3715,8 @@ $modsForHesk_settings = mfh_getSettings();
|
|||||||
global $hesk_settings;
|
global $hesk_settings;
|
||||||
|
|
||||||
// Do we have a cached version file?
|
// Do we have a cached version file?
|
||||||
if (file_exists(HESK_PATH . $hesk_settings['attach_dir'] . '/__latest.txt')) {
|
if (file_exists(HESK_PATH . $hesk_settings['cache_dir'] . '/__latest.txt')) {
|
||||||
if (preg_match('/^(\d+)\|([\d.]+)+$/', @file_get_contents(HESK_PATH . $hesk_settings['attach_dir'] . '/__latest.txt'), $matches) && (time() - intval($matches[1])) < 3600) {
|
if (preg_match('/^(\d+)\|([\d.]+)+$/', @file_get_contents(HESK_PATH . $hesk_settings['cache_dir'] . '/__latest.txt'), $matches) && (time() - intval($matches[1])) < 3600) {
|
||||||
return $matches[2];
|
return $matches[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3710,7 +3749,7 @@ $modsForHesk_settings = mfh_getSettings();
|
|||||||
{
|
{
|
||||||
global $hesk_settings;
|
global $hesk_settings;
|
||||||
|
|
||||||
@file_put_contents(HESK_PATH . $hesk_settings['attach_dir'] . '/__latest.txt', time() . '|' . $latest);
|
@file_put_contents(HESK_PATH . $hesk_settings['cache_dir'] . '/__latest.txt', time() . '|' . $latest);
|
||||||
|
|
||||||
return $latest;
|
return $latest;
|
||||||
|
|
||||||
@ -3736,8 +3775,8 @@ $modsForHesk_settings = mfh_getSettings();
|
|||||||
global $hesk_settings;
|
global $hesk_settings;
|
||||||
|
|
||||||
// Do we have a cached version file?
|
// Do we have a cached version file?
|
||||||
if (file_exists(HESK_PATH . $hesk_settings['attach_dir'] . '/__latest-mfh.txt')) {
|
if (file_exists(HESK_PATH . $hesk_settings['cache_dir'] . '/__latest-mfh.txt')) {
|
||||||
if (preg_match('/^(\d+)\|([\d.]+)+$/', @file_get_contents(HESK_PATH . $hesk_settings['attach_dir'] . '/__latest-mfh.txt'), $matches) && (time() - intval($matches[1])) < 3600) {
|
if (preg_match('/^(\d+)\|([\d.]+)+$/', @file_get_contents(HESK_PATH . $hesk_settings['cache_dir'] . '/__latest-mfh.txt'), $matches) && (time() - intval($matches[1])) < 3600) {
|
||||||
return $matches[2];
|
return $matches[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3769,7 +3808,7 @@ $modsForHesk_settings = mfh_getSettings();
|
|||||||
{
|
{
|
||||||
global $hesk_settings;
|
global $hesk_settings;
|
||||||
|
|
||||||
@file_put_contents(HESK_PATH . $hesk_settings['attach_dir'] . '/__latest-mfh.txt', time() . '|' . $latest);
|
@file_put_contents(HESK_PATH . $hesk_settings['cache_dir'] . '/__latest-mfh.txt', time() . '|' . $latest);
|
||||||
|
|
||||||
return $latest;
|
return $latest;
|
||||||
|
|
||||||
@ -3832,7 +3871,7 @@ $modsForHesk_settings = mfh_getSettings();
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Check if language file is for current version */
|
/* Check if language file is for current version */
|
||||||
if (strpos($tmp, '$hesklang[\'rcheck\']') === false) {
|
if (strpos($tmp, '$hesklang[\'refresh_page\']') === false) {
|
||||||
$err .= " |----> WRONG VERSION (not " . $hesk_settings['hesk_version'] . ")\n";
|
$err .= " |----> WRONG VERSION (not " . $hesk_settings['hesk_version'] . ")\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -122,6 +122,7 @@ if ( ! is_writable(HESK_PATH . $set['attach_dir']) )
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$set['cache_dir'] = isset($_POST['s_cache_dir']) && ! is_array($_POST['s_cache_dir']) ? preg_replace('/[^a-zA-Z0-9_-]/', '', $_POST['s_cache_dir']) : 'cache';
|
||||||
$set['max_listings'] = hesk_checkMinMax(intval(hesk_POST('s_max_listings')), 1, 999, 10);
|
$set['max_listings'] = hesk_checkMinMax(intval(hesk_POST('s_max_listings')), 1, 999, 10);
|
||||||
$set['print_font_size'] = hesk_checkMinMax(intval(hesk_POST('s_print_font_size')), 1, 99, 12);
|
$set['print_font_size'] = hesk_checkMinMax(intval(hesk_POST('s_print_font_size')), 1, 99, 12);
|
||||||
$set['autoclose'] = hesk_checkMinMax(intval(hesk_POST('s_autoclose')), 0, 999, 7);
|
$set['autoclose'] = hesk_checkMinMax(intval(hesk_POST('s_autoclose')), 0, 999, 7);
|
||||||
@ -584,6 +585,7 @@ $hesk_settings[\'hesk_title\']=\'' . $set['hesk_title'] . '\';
|
|||||||
$hesk_settings[\'hesk_url\']=\'' . $set['hesk_url'] . '\';
|
$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[\'max_listings\']=' . $set['max_listings'] . ';
|
$hesk_settings[\'max_listings\']=' . $set['max_listings'] . ';
|
||||||
$hesk_settings[\'print_font_size\']=' . $set['print_font_size'] . ';
|
$hesk_settings[\'print_font_size\']=' . $set['print_font_size'] . ';
|
||||||
$hesk_settings[\'autoclose\']=' . $set['autoclose'] . ';
|
$hesk_settings[\'autoclose\']=' . $set['autoclose'] . ';
|
||||||
@ -835,7 +837,7 @@ function hesk_getLanguagesArray($returnArray = 0)
|
|||||||
$add = 0;
|
$add = 0;
|
||||||
} elseif (!preg_match('/\$hesklang\[\'EMAIL_HR\'\]\=\'(.*)\'\;/', $tmp, $hr)) {
|
} elseif (!preg_match('/\$hesklang\[\'EMAIL_HR\'\]\=\'(.*)\'\;/', $tmp, $hr)) {
|
||||||
$add = 0;
|
$add = 0;
|
||||||
} elseif (!preg_match('/\$hesklang\[\'rcheck\'\]/', $tmp)) {
|
} elseif (!preg_match('/\$hesklang\[\'refresh_page\'\]/', $tmp)) {
|
||||||
$add = 0;
|
$add = 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -884,7 +884,7 @@ function save_cf()
|
|||||||
WHERE `id`={$id}");
|
WHERE `id`={$id}");
|
||||||
|
|
||||||
// Clear cache
|
// Clear cache
|
||||||
clear_cf_cache();
|
hesk_purge_cache('cf');
|
||||||
|
|
||||||
// Show success
|
// Show success
|
||||||
$_SESSION['cford'] = $id;
|
$_SESSION['cford'] = $id;
|
||||||
@ -947,7 +947,7 @@ function order_cf()
|
|||||||
update_cf_order();
|
update_cf_order();
|
||||||
|
|
||||||
// Clear cache
|
// Clear cache
|
||||||
clear_cf_cache();
|
hesk_purge_cache('cf');
|
||||||
|
|
||||||
// Finish
|
// Finish
|
||||||
header('Location: custom_fields.php');
|
header('Location: custom_fields.php');
|
||||||
@ -998,7 +998,7 @@ function remove_cf()
|
|||||||
update_cf_order();
|
update_cf_order();
|
||||||
|
|
||||||
// Clear cache
|
// Clear cache
|
||||||
clear_cf_cache();
|
hesk_purge_cache('cf');
|
||||||
|
|
||||||
// Delete custom field data from tickets
|
// Delete custom field data from tickets
|
||||||
hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` SET `custom{$id}`=''");
|
hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` SET `custom{$id}`=''");
|
||||||
@ -1308,26 +1308,9 @@ function new_cf()
|
|||||||
update_cf_order();
|
update_cf_order();
|
||||||
|
|
||||||
// Clear cache
|
// Clear cache
|
||||||
clear_cf_cache();
|
hesk_purge_cache('cf');
|
||||||
|
|
||||||
// Show success
|
// Show success
|
||||||
hesk_process_messages($hesklang['cf_added'],'custom_fields.php','SUCCESS');
|
hesk_process_messages($hesklang['cf_added'],'custom_fields.php','SUCCESS');
|
||||||
|
|
||||||
} // End new_cf()
|
} // End new_cf()
|
||||||
|
|
||||||
|
|
||||||
function clear_cf_cache()
|
|
||||||
{
|
|
||||||
global $hesk_settings;
|
|
||||||
|
|
||||||
$cache_dir = dirname(dirname(__FILE__)).'/'.$hesk_settings['attach_dir'].'/cf/';
|
|
||||||
|
|
||||||
if (is_dir($cache_dir))
|
|
||||||
{
|
|
||||||
$files = preg_grep('/index\.htm$/', glob($cache_dir.'*', GLOB_NOSORT), PREG_GREP_INVERT);
|
|
||||||
array_walk($files, 'hesk_unlink');
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
} // END clear_cf_cache()
|
|
||||||
|
|||||||
@ -48,6 +48,13 @@ hesk_isLoggedIn();
|
|||||||
hesk_checkPermission('can_export');
|
hesk_checkPermission('can_export');
|
||||||
$modsForHesk_settings = mfh_getSettings();
|
$modsForHesk_settings = mfh_getSettings();
|
||||||
|
|
||||||
|
// Just a delete file action?
|
||||||
|
$delete = hesk_GET('delete');
|
||||||
|
if (strlen($delete) && preg_match('/^hesk_export_[0-9_\-]+$/', $delete)) {
|
||||||
|
hesk_unlink(HESK_PATH.$hesk_settings['cache_dir'].'/'.$delete.'.zip');
|
||||||
|
hesk_process_messages($hesklang['fd'], 'export.php','SUCCESS');
|
||||||
|
}
|
||||||
|
|
||||||
// Set default values
|
// Set default values
|
||||||
define('CALENDAR', 1);
|
define('CALENDAR', 1);
|
||||||
define('MAIN_PAGE', 1);
|
define('MAIN_PAGE', 1);
|
||||||
@ -317,7 +324,7 @@ if (isset($_GET['w'])) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// This will be the export directory
|
// This will be the export directory
|
||||||
$export_dir = HESK_PATH . $hesk_settings['attach_dir'] . '/export/';
|
$export_dir = HESK_PATH.$hesk_settings['cache_dir'].'/';
|
||||||
|
|
||||||
// This will be the name of the export and the XML file
|
// This will be the name of the export and the XML file
|
||||||
$export_name = 'hesk_export_' . date('Y-m-d_H-i-s') . '_' . mt_rand(10000, 99999);
|
$export_name = 'hesk_export_' . date('Y-m-d_H-i-s') . '_' . mt_rand(10000, 99999);
|
||||||
@ -331,12 +338,7 @@ if (isset($_GET['w'])) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Cleanup old files
|
// Cleanup old files
|
||||||
$files = preg_grep('/index\.htm$/', glob($export_dir.'*', GLOB_NOSORT), PREG_GREP_INVERT);
|
hesk_purge_cache('export', 86400);
|
||||||
if (is_array($files) && count($files)) {
|
|
||||||
foreach ($files as $file) {
|
|
||||||
hesk_unlink($file, 86400);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
hesk_error($hesklang['ede']);
|
hesk_error($hesklang['ede']);
|
||||||
}
|
}
|
||||||
@ -348,6 +350,7 @@ if (isset($_GET['w'])) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Start generating the report message and generating the export
|
// Start generating the report message and generating the export
|
||||||
|
$success_msg = '';
|
||||||
$flush_me = '<br /><br />';
|
$flush_me = '<br /><br />';
|
||||||
$flush_me .= hesk_date() . " | {$hesklang['inite']} ";
|
$flush_me .= hesk_date() . " | {$hesklang['inite']} ";
|
||||||
|
|
||||||
@ -648,7 +651,10 @@ if (isset($_GET['w'])) {
|
|||||||
|
|
||||||
// We're done!
|
// We're done!
|
||||||
$flush_me .= hesk_date() . " | {$hesklang['fZIP']}<br /><br />";
|
$flush_me .= hesk_date() . " | {$hesklang['fZIP']}<br /><br />";
|
||||||
$flush_me .= '<a href="' . $save_to_zip . '">' . $hesklang['ch2d'] . "</a>\n";
|
|
||||||
|
// Success message
|
||||||
|
$success_msg .= $hesk_settings['debug_mode'] ? $flush_me : '<br /><br />';
|
||||||
|
$success_msg .= $hesklang['step1'] . ': <a href="' . $save_to_zip . '">' . $hesklang['ch2d'] . '</a><br /><br />' . $hesklang['step2'] . ': <a href="export.php?delete='.urlencode($export_name).'">' . $hesklang['dffs'] . '</a>';
|
||||||
} // No tickets exported, cleanup
|
} // No tickets exported, cleanup
|
||||||
else {
|
else {
|
||||||
hesk_unlink($save_to);
|
hesk_unlink($save_to);
|
||||||
@ -684,9 +690,9 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
hesk_handle_messages();
|
hesk_handle_messages();
|
||||||
|
|
||||||
// If an export was generated, show the link to download
|
// If an export was generated, show the link to download
|
||||||
if (isset($flush_me)) {
|
if (isset($success_msg)) {
|
||||||
if ($tickets_exported > 0) {
|
if ($tickets_exported > 0) {
|
||||||
hesk_show_success($flush_me);
|
hesk_show_success($success_msg);
|
||||||
} else {
|
} else {
|
||||||
hesk_show_notice($hesklang['n2ex']);
|
hesk_show_notice($hesklang['n2ex']);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1140,8 +1140,8 @@ function save_article()
|
|||||||
$content = hesk_getHTML( hesk_POST('content') );
|
$content = hesk_getHTML( hesk_POST('content') );
|
||||||
|
|
||||||
// Clean the HTML code
|
// Clean the HTML code
|
||||||
require(HESK_PATH . 'inc/htmlpurifier/HTMLPurifier.php');
|
require(HESK_PATH . 'inc/htmlpurifier/HeskHTMLPurifier.php');
|
||||||
$purifier = new HeskHTMLPurifier();
|
$purifier = new HeskHTMLPurifier($hesk_settings['cache_dir']);
|
||||||
$content = $purifier->heskPurify($content);
|
$content = $purifier->heskPurify($content);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1404,11 +1404,6 @@ function edit_article()
|
|||||||
require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
||||||
?>
|
?>
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
|
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li><a href="manage_knowledgebase.php"><?php echo $hesklang['kb']; ?></a></li>
|
<li><a href="manage_knowledgebase.php"><?php echo $hesklang['kb']; ?></a></li>
|
||||||
<li><a href="manage_knowledgebase.php?a=manage_cat&catid=<?php echo $catid; ?>"><?php echo $hesklang['kb_cat_man']; ?></a></li>
|
<li><a href="manage_knowledgebase.php?a=manage_cat&catid=<?php echo $catid; ?>"><?php echo $hesklang['kb_cat_man']; ?></a></li>
|
||||||
@ -1548,14 +1543,15 @@ function edit_article()
|
|||||||
</div>
|
</div>
|
||||||
<?php endif; //End attachments ?>
|
<?php endif; //End attachments ?>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input type="hidden" name="a" value="save_article" />
|
<input type="hidden" name="a" value="save_article">
|
||||||
<input type="hidden" name="id" value="<?php echo $id; ?>" />
|
<input type="hidden" name="id" value="<?php echo $id; ?>">
|
||||||
<input type="hidden" name="old_type" value="<?php echo $article['type']; ?>" />
|
<input type="hidden" name="old_type" value="<?php echo $article['type']; ?>">
|
||||||
<input type="hidden" name="old_catid" value="<?php echo $catid; ?>" />
|
<input type="hidden" name="old_catid" value="<?php echo $catid; ?>">
|
||||||
<input type="hidden" name="token" value="<?php hesk_token_echo(); ?>" /><br>
|
<input type="hidden" name="token" value="<?php hesk_token_echo(); ?>">
|
||||||
<div class="btn-group">
|
<div class="btn-group-vertical full-width">
|
||||||
<input type="submit" value="<?php echo $hesklang['kb_save']; ?>" class="btn btn-primary" />
|
<input type="submit" value="<?php echo $hesklang['kb_save']; ?>" class="btn btn-primary" />
|
||||||
<a class="btn btn-default" href="manage_knowledgebase.php?a=manage_cat&catid=<?php echo $catid; ?>"><?php echo $hesklang['cancel']; ?></a>
|
<a class="btn btn-default" href="manage_knowledgebase.php?a=manage_cat&catid=<?php echo $catid; ?>"><?php echo $hesklang['cancel']; ?></a>
|
||||||
|
<a class="btn btn-danger" href="manage_knowledgebase.php?a=remove_article&id=<?php echo $article['id']; ?>&token=<?php hesk_token_echo(); ?>" onclick="return hesk_confirmExecute('<?php echo hesk_makeJsString($hesklang['del_art']); ?>');"><?php echo $hesklang['del_kbaa']; ?></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -2015,8 +2011,8 @@ function new_article()
|
|||||||
$content = hesk_getHTML( hesk_POST('content') );
|
$content = hesk_getHTML( hesk_POST('content') );
|
||||||
|
|
||||||
// Clean the HTML code
|
// Clean the HTML code
|
||||||
require(HESK_PATH . 'inc/htmlpurifier/HTMLPurifier.php');
|
require(HESK_PATH . 'inc/htmlpurifier/HeskHTMLPurifier.php');
|
||||||
$purifier = new HeskHTMLPurifier();
|
$purifier = new HeskHTMLPurifier($hesk_settings['cache_dir']);
|
||||||
$content = $purifier->heskPurify($content);
|
$content = $purifier->heskPurify($content);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -492,7 +492,7 @@ function save_sm()
|
|||||||
|
|
||||||
// Clean the HTML code
|
// Clean the HTML code
|
||||||
require(HESK_PATH . 'inc/htmlpurifier/HeskHTMLPurifier.php');
|
require(HESK_PATH . 'inc/htmlpurifier/HeskHTMLPurifier.php');
|
||||||
$purifier = new HeskHTMLPurifier();
|
$purifier = new HeskHTMLPurifier($hesk_settings['cache_dir']);
|
||||||
$message = $purifier->heskPurify($message);
|
$message = $purifier->heskPurify($message);
|
||||||
|
|
||||||
// Any errors?
|
// Any errors?
|
||||||
@ -661,7 +661,7 @@ function new_sm()
|
|||||||
|
|
||||||
// Clean the HTML code
|
// Clean the HTML code
|
||||||
require(HESK_PATH . 'inc/htmlpurifier/HeskHTMLPurifier.php');
|
require(HESK_PATH . 'inc/htmlpurifier/HeskHTMLPurifier.php');
|
||||||
$purifier = new HeskHTMLPurifier();
|
$purifier = new HeskHTMLPurifier($hesk_settings['cache_dir']);
|
||||||
$message = $purifier->heskPurify($message);
|
$message = $purifier->heskPurify($message);
|
||||||
|
|
||||||
// Any errors?
|
// Any errors?
|
||||||
|
|||||||
@ -172,4 +172,8 @@ button.dropdown-submit {
|
|||||||
|
|
||||||
.timeline-header.header-info {
|
.timeline-header.header-info {
|
||||||
font-size: 14px !important;
|
font-size: 14px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.full-width {
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
@ -709,3 +709,53 @@ function hesk_checkPermission($feature, $showerror = 1)
|
|||||||
}
|
}
|
||||||
|
|
||||||
} // END hesk_checkPermission()
|
} // END hesk_checkPermission()
|
||||||
|
|
||||||
|
function hesk_purge_cache($type = '', $expire_after_seconds = 0)
|
||||||
|
{
|
||||||
|
global $hesk_settings;
|
||||||
|
|
||||||
|
$cache_dir = dirname(dirname(__FILE__)).'/'.$hesk_settings['cache_dir'].'/';
|
||||||
|
|
||||||
|
if ( ! is_dir($cache_dir))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($type)
|
||||||
|
{
|
||||||
|
case 'export':
|
||||||
|
$files = glob($cache_dir.'hesk_export_*', GLOB_NOSORT);
|
||||||
|
break;
|
||||||
|
case 'status':
|
||||||
|
$files = glob($cache_dir.'status_*', GLOB_NOSORT);
|
||||||
|
break;
|
||||||
|
case 'cf':
|
||||||
|
$files = glob($cache_dir.'cf_*', GLOB_NOSORT);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
hesk_rrmdir(trim($cache_dir, '/'), true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_array($files))
|
||||||
|
{
|
||||||
|
array_walk($files, 'hesk_unlink_callable', $expire_after_seconds);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
} // END hesk_purge_cache()
|
||||||
|
|
||||||
|
|
||||||
|
function hesk_rrmdir($dir, $keep_top_level=false)
|
||||||
|
{
|
||||||
|
$files = $keep_top_level ? array_diff(scandir($dir), array('.','..','index.htm')) : array_diff(scandir($dir), array('.','..'));
|
||||||
|
|
||||||
|
foreach ($files as $file)
|
||||||
|
{
|
||||||
|
(is_dir("$dir/$file")) ? hesk_rrmdir("$dir/$file") : @unlink("$dir/$file");
|
||||||
|
}
|
||||||
|
|
||||||
|
return $keep_top_level ? true : @rmdir($dir);
|
||||||
|
|
||||||
|
} // END hesk_rrmdir()
|
||||||
|
|||||||
@ -246,6 +246,12 @@ function hesk_unlink($file, $older_than = 0)
|
|||||||
} // END hesk_unlink()
|
} // END hesk_unlink()
|
||||||
|
|
||||||
|
|
||||||
|
function hesk_unlink_callable($file, $key, $older_than=0)
|
||||||
|
{
|
||||||
|
return hesk_unlink($file, $older_than);
|
||||||
|
} // END hesk_unlink_callable()
|
||||||
|
|
||||||
|
|
||||||
function hesk_utf8_urldecode($in)
|
function hesk_utf8_urldecode($in)
|
||||||
{
|
{
|
||||||
$in = preg_replace("/%u([0-9a-f]{3,4})/i", "&#x\\1;", urldecode($in));
|
$in = preg_replace("/%u([0-9a-f]{3,4})/i", "&#x\\1;", urldecode($in));
|
||||||
@ -1726,9 +1732,43 @@ function hesk_check_maintenance($dodie = true)
|
|||||||
|
|
||||||
<div class="alert alert-warning" style="margin: 20px">
|
<div class="alert alert-warning" style="margin: 20px">
|
||||||
<i class="fa fa-exclamation-triangle"></i>
|
<i class="fa fa-exclamation-triangle"></i>
|
||||||
<b><?php echo $hesklang['mm1']; ?></b><br/><br/>
|
<?php
|
||||||
<?php echo $hesklang['mm2']; ?><br/><br/>
|
// Has the help desk been installed yet?
|
||||||
<?php echo $hesklang['mm3']; ?>
|
if (
|
||||||
|
$hesk_settings['maintenance_mode'] == 0 &&
|
||||||
|
$hesk_settings['question_ans'] == 'PB6YM' &&
|
||||||
|
|
||||||
|
$hesk_settings['site_title'] == 'My Web site' &&
|
||||||
|
$hesk_settings['site_url'] == 'http://www.example.com' &&
|
||||||
|
$hesk_settings['webmaster_mail'] == 'support@example.com' &&
|
||||||
|
$hesk_settings['noreply_mail'] == 'support@example.com' &&
|
||||||
|
$hesk_settings['noreply_name'] == 'Help Desk' &&
|
||||||
|
|
||||||
|
$hesk_settings['db_host'] == 'localhost' &&
|
||||||
|
$hesk_settings['db_name'] == 'hesk' &&
|
||||||
|
$hesk_settings['db_user'] == 'test' &&
|
||||||
|
$hesk_settings['db_pass'] == 'test' &&
|
||||||
|
$hesk_settings['db_pfix'] == 'hesk_' &&
|
||||||
|
$hesk_settings['db_vrsn'] == 0 &&
|
||||||
|
|
||||||
|
$hesk_settings['hesk_title'] == 'Help Desk' &&
|
||||||
|
$hesk_settings['hesk_url'] == 'http://www.example.com/helpdesk'
|
||||||
|
)
|
||||||
|
{
|
||||||
|
echo "
|
||||||
|
<b>{$hesklang['hni1']}</b><br /><br />
|
||||||
|
{$hesklang['hni2']}<br /><br />
|
||||||
|
{$hesklang['hni3']}";
|
||||||
|
}
|
||||||
|
// Hesk appears to be installed, show a "Maintenance in progress" message
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "
|
||||||
|
<b>{$hesklang['mm1']}</b><br /><br />
|
||||||
|
{$hesklang['mm2']}<br /><br />
|
||||||
|
{$hesklang['mm3']}";
|
||||||
|
}
|
||||||
|
?>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
require_once(HESK_PATH . 'inc/footer.inc.php');
|
require_once(HESK_PATH . 'inc/footer.inc.php');
|
||||||
|
|||||||
@ -38,8 +38,8 @@ function hesk_load_custom_fields($category=0, $use_cache=1)
|
|||||||
global $hesk_settings, $hesklang;
|
global $hesk_settings, $hesklang;
|
||||||
|
|
||||||
// Do we have a cached version available
|
// Do we have a cached version available
|
||||||
$cache_dir = dirname(dirname(__FILE__)).'/'.$hesk_settings['attach_dir'].'/cf/';
|
$cache_dir = dirname(dirname(__FILE__)).'/'.$hesk_settings['cache_dir'].'/';
|
||||||
$cache_file = $cache_dir . sha1($hesk_settings['language']).'.cache.php';
|
$cache_file = $cache_dir . 'cf_' . sha1($hesk_settings['language']).'.cache.php';
|
||||||
|
|
||||||
if ($use_cache && file_exists($cache_file))
|
if ($use_cache && file_exists($cache_file))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1400,7 +1400,6 @@ $hesklang['import']='You are importing a <i>private ticket</i> into a <i>public
|
|||||||
$hesklang['tab_1']='General';
|
$hesklang['tab_1']='General';
|
||||||
$hesklang['tab_2']='Help Desk';
|
$hesklang['tab_2']='Help Desk';
|
||||||
$hesklang['tab_3']='Knowledgebase';
|
$hesklang['tab_3']='Knowledgebase';
|
||||||
$hesklang['tab_4']='Custom Fields';
|
|
||||||
$hesklang['tab_5']='Misc';
|
$hesklang['tab_5']='Misc';
|
||||||
$hesklang['disable']='Disable';
|
$hesklang['disable']='Disable';
|
||||||
$hesklang['dat']='Date & Time';
|
$hesklang['dat']='Date & Time';
|
||||||
@ -1766,7 +1765,6 @@ $hesklang['mm3']='We apologize for the inconvenience and ask that you please try
|
|||||||
$hesklang['mma1']='Maintenance mode is active!';
|
$hesklang['mma1']='Maintenance mode is active!';
|
||||||
$hesklang['mma2']='Customers are not able to use the help desk.';
|
$hesklang['mma2']='Customers are not able to use the help desk.';
|
||||||
$hesklang['tools']='Tools';
|
$hesklang['tools']='Tools';
|
||||||
$hesklang['banemail']='Banned Emails';
|
|
||||||
$hesklang['banemail_intro']='Prevent certain email addresses from submitting tickets to your help desk.';
|
$hesklang['banemail_intro']='Prevent certain email addresses from submitting tickets to your help desk.';
|
||||||
$hesklang['no_banemails']='<i>No emails are being banned.</i>';
|
$hesklang['no_banemails']='<i>No emails are being banned.</i>';
|
||||||
$hesklang['eperm']='Permanent email bans:';
|
$hesklang['eperm']='Permanent email bans:';
|
||||||
@ -1786,7 +1784,6 @@ $hesklang['can_ban_emails']='Can ban emails';
|
|||||||
$hesklang['can_unban_emails']='Can unban emails (enables Can ban emails)';
|
$hesklang['can_unban_emails']='Can unban emails (enables Can ban emails)';
|
||||||
$hesklang['eisban']='This email address is banned.';
|
$hesklang['eisban']='This email address is banned.';
|
||||||
$hesklang['click_unban']='Click here to unban.';
|
$hesklang['click_unban']='Click here to unban.';
|
||||||
$hesklang['banip']='Banned IPs';
|
|
||||||
$hesklang['banip_intro']='Visitors from banned IP addresses will not be able to view or submit tickets and login into the help desk.';
|
$hesklang['banip_intro']='Visitors from banned IP addresses will not be able to view or submit tickets and login into the help desk.';
|
||||||
$hesklang['ipperm']='Permanent IP bans:';
|
$hesklang['ipperm']='Permanent IP bans:';
|
||||||
$hesklang['iptemp']='Login failure bans:';
|
$hesklang['iptemp']='Login failure bans:';
|
||||||
@ -2029,11 +2026,11 @@ $hesklang['clr_view']='Color preview on text';
|
|||||||
$hesklang['cbc']='Changeable by customers';
|
$hesklang['cbc']='Changeable by customers';
|
||||||
$hesklang['ccc']='Can customers change this status?';
|
$hesklang['ccc']='Can customers change this status?';
|
||||||
$hesklang['del_status']='Delete this status?';
|
$hesklang['del_status']='Delete this status?';
|
||||||
$hesklang['ex_status']='Existing Statuses';
|
$hesklang['ex_status']='Existing statuses';
|
||||||
$hesklang['status_hesk']='Built-in Statuses (cannot be modified here)';
|
$hesklang['status_hesk']='Built-in Statuses (cannot be modified here)';
|
||||||
$hesklang['status_custom']='Custom Statuses';
|
$hesklang['status_custom']='Custom Statuses';
|
||||||
$hesklang['status_custom_none']='No custom statuses. You can add them using the form above.';
|
$hesklang['status_custom_none']='No custom statuses. You can add them using the form above.';
|
||||||
$hesklang['status_save']='Save Status';
|
$hesklang['status_save']='Save status';
|
||||||
$hesklang['list_tkt_status']='List all tickets with this status';
|
$hesklang['list_tkt_status']='List all tickets with this status';
|
||||||
$hesklang['new_status']='New custom status';
|
$hesklang['new_status']='New custom status';
|
||||||
$hesklang['edit_status']='Edit custom status';
|
$hesklang['edit_status']='Edit custom status';
|
||||||
@ -2051,6 +2048,21 @@ $hesklang['frames2']='Prevent loading HESK in frames on third party domains';
|
|||||||
$hesklang['numsub']='Submitted tickets'; // Will show how many tickets this user submitted
|
$hesklang['numsub']='Submitted tickets'; // Will show how many tickets this user submitted
|
||||||
$hesklang['hidf']='Hidden inputs are not visible to customers on the Submit a ticket form (the value will still be visible on ticket details page if they are set as public). They behave as normal text fields for staff members.';
|
$hesklang['hidf']='Hidden inputs are not visible to customers on the Submit a ticket form (the value will still be visible on ticket details page if they are set as public). They behave as normal text fields for staff members.';
|
||||||
$hesklang['rcheck']='Do not select a default option';
|
$hesklang['rcheck']='Do not select a default option';
|
||||||
|
$hesklang['refresh_page']='Refresh this page';
|
||||||
|
$hesklang['banemail']='Ban emails';
|
||||||
|
$hesklang['banip']='Ban IPs';
|
||||||
|
$hesklang['tab_4']='Custom fields';
|
||||||
|
$hesklang['del_kba']='Delete this article';
|
||||||
|
$hesklang['del_kbaa']='Permanently delete this article';
|
||||||
|
$hesklang['hni1']='HESK not installed yet?';
|
||||||
|
$hesklang['hni2']='It appears that this help desk has not been properly installed and configured yet.';
|
||||||
|
$hesklang['hni3']='To install HESK, follow <a href="docs/">Instructions in the documentation</a>';
|
||||||
|
$hesklang['cf']='Cache folder';
|
||||||
|
$hesklang['e_cdir']='Hesk will not be able to parse emails or cache results unless the cache folder exists and is writable.';
|
||||||
|
$hesklang['step1']='Step 1';
|
||||||
|
$hesklang['step2']='Step 2';
|
||||||
|
$hesklang['dffs']='When download completes, delete the file from server';
|
||||||
|
$hesklang['fd']='Export file deleted from server';
|
||||||
|
|
||||||
// DO NOT CHANGE BELOW
|
// DO NOT CHANGE BELOW
|
||||||
if (!defined('IN_SCRIPT')) die('PHP syntax OK!');
|
if (!defined('IN_SCRIPT')) die('PHP syntax OK!');
|
||||||
|
|||||||
11
ticket.php
11
ticket.php
@ -259,9 +259,15 @@ if (!$show['show']) {
|
|||||||
<div class="blankSpace"></div>
|
<div class="blankSpace"></div>
|
||||||
<div class="table-bordered">
|
<div class="table-bordered">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-10">
|
||||||
<h2><?php echo $ticket['subject']; ?></h2>
|
<h2><?php echo $ticket['subject']; ?></h2>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-2 pull-right pad-down-20">
|
||||||
|
<a href="ticket.php?track=<?php echo $trackingID.$hesk_settings['e_query']; ?>">
|
||||||
|
<i class="fa fa-refresh"></i>
|
||||||
|
<?php echo $hesklang['refresh_page']; ?>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-3 col-sm-12">
|
<div class="col-md-3 col-sm-12">
|
||||||
@ -284,7 +290,8 @@ if (!$show['show']) {
|
|||||||
echo '<a href="change_status.php?track=' . $trackingID . $hesk_settings['e_query'] . '&s=3&Refresh=' . $random . '&token=' . hesk_token_echo(0) . '" title="' . $hesklang['close_action'] . '">' . $hesklang['close_action'] . '</a>';
|
echo '<a href="change_status.php?track=' . $trackingID . $hesk_settings['e_query'] . '&s=3&Refresh=' . $random . '&token=' . hesk_token_echo(0) . '" title="' . $hesklang['close_action'] . '">' . $hesklang['close_action'] . '</a>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?></p>
|
?>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row medLowPriority">
|
<div class="row medLowPriority">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user