Merge pull request #190 from mkoch227/email-template-editor
Email template editor
This commit is contained in:
commit
54bbbf1610
@ -89,6 +89,15 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
<a title="' . $hesklang['sm_title'] . '" href="service_messages.php">' . $hesklang['sm_title'] . '</a>
|
<a title="' . $hesklang['sm_title'] . '" href="service_messages.php">' . $hesklang['sm_title'] . '</a>
|
||||||
</li>';
|
</li>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Show a link to email tpl management if user has permission to do so
|
||||||
|
if (hesk_checkPermission('can_man_email_tpl', 0)) {
|
||||||
|
echo '
|
||||||
|
<li role="presentation">
|
||||||
|
<a title="'.$hesklang['email_templates'].'" href="manage_email_templates.php">'.$hesklang['email_templates'].'</a>
|
||||||
|
</li>
|
||||||
|
';
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tab-content summaryList tabPadding">
|
<div class="tab-content summaryList tabPadding">
|
||||||
|
@ -92,6 +92,15 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
<a title="' . $hesklang['sm_title'] . '" href="service_messages.php">' . $hesklang['sm_title'] . '</a>
|
<a title="' . $hesklang['sm_title'] . '" href="service_messages.php">' . $hesklang['sm_title'] . '</a>
|
||||||
</li>';
|
</li>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Show a link to email tpl management if user has permission to do so
|
||||||
|
if (hesk_checkPermission('can_man_email_tpl', 0)) {
|
||||||
|
echo '
|
||||||
|
<li role="presentation">
|
||||||
|
<a title="'.$hesklang['email_templates'].'" href="manage_email_templates.php">'.$hesklang['email_templates'].'</a>
|
||||||
|
</li>
|
||||||
|
';
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tab-content summaryList tabPadding">
|
<div class="tab-content summaryList tabPadding">
|
||||||
|
302
admin/manage_email_templates.php
Normal file
302
admin/manage_email_templates.php
Normal file
@ -0,0 +1,302 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
define('IN_SCRIPT',1);
|
||||||
|
define('HESK_PATH','../');
|
||||||
|
|
||||||
|
/* Get all the required files and functions */
|
||||||
|
require(HESK_PATH . 'hesk_settings.inc.php');
|
||||||
|
require(HESK_PATH . 'inc/common.inc.php');
|
||||||
|
require(HESK_PATH . 'inc/admin_functions.inc.php');
|
||||||
|
hesk_load_database_functions();
|
||||||
|
|
||||||
|
hesk_session_start();
|
||||||
|
hesk_dbConnect();
|
||||||
|
hesk_isLoggedIn();
|
||||||
|
|
||||||
|
hesk_checkPermission('can_manage_email_templates');
|
||||||
|
|
||||||
|
define('WYSIWYG',1);
|
||||||
|
|
||||||
|
// Are we performing an action?
|
||||||
|
$showEditPanel = false;
|
||||||
|
if (isset($_GET['action'])) {
|
||||||
|
if ($_GET['action'] == 'edit') {
|
||||||
|
$showEditPanel = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Are we saving?
|
||||||
|
if (isset($_POST['action'])) {
|
||||||
|
if ($_POST['action'] == 'save') {
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* Print header */
|
||||||
|
require_once(HESK_PATH . 'inc/headerAdmin.inc.php');
|
||||||
|
|
||||||
|
if ($modsForHesk_settings['html_emails']) {
|
||||||
|
echo '<script type="text/javascript">
|
||||||
|
tinyMCE.init({
|
||||||
|
mode : "textareas",
|
||||||
|
editor_selector : "htmlEditor",
|
||||||
|
elements : "content",
|
||||||
|
theme : "advanced",
|
||||||
|
convert_urls : false,
|
||||||
|
gecko_spellcheck: true,
|
||||||
|
|
||||||
|
theme_advanced_buttons1 : "cut,copy,paste,|,undo,redo,|,formatselect,fontselect,fontsizeselect,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull",
|
||||||
|
theme_advanced_buttons2 : "sub,sup,|,charmap,|,bullist,numlist,|,outdent,indent,insertdate,inserttime,preview,|,forecolor,backcolor,|,hr,removeformat,visualaid,|,link,unlink,anchor,image,cleanup,code",
|
||||||
|
theme_advanced_buttons3 : "",
|
||||||
|
|
||||||
|
theme_advanced_toolbar_location : "top",
|
||||||
|
theme_advanced_toolbar_align : "left",
|
||||||
|
theme_advanced_statusbar_location : "bottom",
|
||||||
|
theme_advanced_resizing : true
|
||||||
|
});
|
||||||
|
</script>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Print main manage users page */
|
||||||
|
require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="row" style="padding: 20px">
|
||||||
|
<ul class="nav nav-tabs" role="tablist">
|
||||||
|
<?php
|
||||||
|
// Show a link to banned_emails.php if user has permission
|
||||||
|
if ( hesk_checkPermission('can_ban_emails',0) )
|
||||||
|
{
|
||||||
|
echo '
|
||||||
|
<li role="presentation">
|
||||||
|
<a title="' . $hesklang['banemail'] . '" href="banned_emails.php">'.$hesklang['banemail'].'</a>
|
||||||
|
</li>
|
||||||
|
';
|
||||||
|
}
|
||||||
|
if ( hesk_checkPermission('can_ban_ips',0) )
|
||||||
|
{
|
||||||
|
echo '
|
||||||
|
<li role="presentation">
|
||||||
|
<a title="' . $hesklang['banip'] . '" href="banned_ips.php">'.$hesklang['banip'].'</a>
|
||||||
|
</li>';
|
||||||
|
}
|
||||||
|
// Show a link to status_message.php if user has permission to do so
|
||||||
|
if ( hesk_checkPermission('can_service_msg',0) )
|
||||||
|
{
|
||||||
|
echo '
|
||||||
|
<li role="presentation">
|
||||||
|
<a title="' . $hesklang['sm_title'] . '" href="service_messages.php">' . $hesklang['sm_title'] . '</a>
|
||||||
|
</li>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<li role="presentation" class="active">
|
||||||
|
<a href="#"><?php echo $hesklang['email_templates']; ?> <i class="fa fa-question-circle settingsquestionmark" data-toggle="popover" title="<?php echo $hesklang['email_templates']; ?>" data-content="<?php echo $hesklang['email_templates_intro']; ?>"></i></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="tab-content summaryList tabPadding">
|
||||||
|
<?php if ($showEditPanel): ?>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h4>
|
||||||
|
<?php
|
||||||
|
$isHtml = ($_GET['html'] == 'true');
|
||||||
|
$class = 'plaintext-editor';
|
||||||
|
if ($isHtml) {
|
||||||
|
$class = 'htmlEditor';
|
||||||
|
echo sprintf($hesklang['editing_html_template'], $_GET['template']);
|
||||||
|
} else {
|
||||||
|
echo sprintf($hesklang['editing_plain_text_template'], $_GET['template']);
|
||||||
|
} ?>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<?php
|
||||||
|
$fileContent = '';
|
||||||
|
if ($isHtml) {
|
||||||
|
$fileContent = file_get_contents(HESK_PATH . 'language/'.urldecode($_GET['language']).'/emails/html/'.$_GET['template']);
|
||||||
|
} else {
|
||||||
|
$fileContent = file_get_contents(HESK_PATH . 'language/'.urldecode($_GET['language']).'/emails/'.$_GET['template']);
|
||||||
|
}
|
||||||
|
if ($fileContent === false) {
|
||||||
|
//throw error
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<a href="#" id="showSpecialTags" onclick="toggleContainers(['specialTags'],['showSpecialTags'])">
|
||||||
|
<?php echo $hesklang['show_special_tags']; ?>
|
||||||
|
</a>
|
||||||
|
<div id="specialTags" style="display: none">
|
||||||
|
<a href="#" onclick="toggleContainers(['showSpecialTags'],['specialTags'])">
|
||||||
|
<?php echo $hesklang['hide_special_tags']; ?>
|
||||||
|
</a>
|
||||||
|
<table class="table table-striped table-responsive table-condensed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th><?php echo $hesklang['special_tag']; ?></th>
|
||||||
|
<th><?php echo $hesklang['description'] ?></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
$tags = getSpecialTagMap();
|
||||||
|
foreach ($tags as $tag => $text): ?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo $tag; ?></td>
|
||||||
|
<td><?php echo $text; ?></td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<form action="manage_email_templates.php" method="post">
|
||||||
|
<textarea name="text" rows="15" class="form-control <?php echo $class; ?>"><?php echo $fileContent; ?></textarea>
|
||||||
|
<input type="hidden" name="action" value="save">
|
||||||
|
<input type="hidden" name="template" value="<?php echo htmlspecialchars($_GET['template']); ?>">
|
||||||
|
<input type="hidden" name="language" value="<?php echo htmlspecialchars($_GET['language']); ?>">
|
||||||
|
<input type="hidden" name="html" value="<?php echo $isHtml; ?>">
|
||||||
|
<br>
|
||||||
|
<?php
|
||||||
|
$fileWritable = false;
|
||||||
|
if ($isHtml) {
|
||||||
|
$fileWritable = is_writable(HESK_PATH.'language/'.$_GET['language'].'/emails/html/'.$_GET['template']);
|
||||||
|
} else {
|
||||||
|
$fileWritable = is_writable(HESK_PATH.'language/'.$_GET['language'].'/emails'.$_GET['template']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$fileWritable) {
|
||||||
|
echo '<div class="alert alert-danger">
|
||||||
|
<p>'.sprintf($hesklang['email_template_directory_not_writable'], $_GET['template']).'</p>
|
||||||
|
</div>';
|
||||||
|
} else {
|
||||||
|
echo '<input type="submit" class="btn btn-default" value="'.$hesklang['save'].'">';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<?php
|
||||||
|
/* This will handle error, success and notice messages */
|
||||||
|
hesk_handle_messages();
|
||||||
|
|
||||||
|
// Output list of templates, and provide links to edit the plaintext and HTML versions for each language
|
||||||
|
// First get list of languages
|
||||||
|
$languages = array();
|
||||||
|
foreach ($hesk_settings['languages'] as $key => $value) {
|
||||||
|
$languages[$key] = $hesk_settings['languages'][$key]['folder'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get all files, but don't worry about index.htm, items beginning with '.', or the html folder
|
||||||
|
// We'll also assume the template file exists in all language folders and in the html folder
|
||||||
|
reset($languages);
|
||||||
|
$firstKey = key($languages);
|
||||||
|
$firstDirectory = HESK_PATH . 'language/'.$languages[$firstKey].'/emails';
|
||||||
|
$directoryListing = preg_grep('/^([^.])/', scandir($firstDirectory));
|
||||||
|
$emailTemplates = array_diff($directoryListing, array('html', 'index.htm'));
|
||||||
|
|
||||||
|
?>
|
||||||
|
<table class="table table-striped table-responsive">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th><?php echo $hesklang['file_name']; ?></th>
|
||||||
|
<?php foreach ($languages as $language => $languageCode): ?>
|
||||||
|
<th><?php echo $language; ?></th>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php foreach ($emailTemplates as $template): ?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo $template; ?></td>
|
||||||
|
<?php foreach ($languages as $language => $languageCode): ?>
|
||||||
|
<td>
|
||||||
|
<?php
|
||||||
|
echo getTemplateMarkup($template, $languageCode);
|
||||||
|
echo ' ';
|
||||||
|
if ($modsForHesk_settings['html_emails']) {
|
||||||
|
echo getTemplateMarkup($template, $languageCode, true);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</td>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
require_once(HESK_PATH . 'inc/footer.inc.php');
|
||||||
|
exit();
|
||||||
|
|
||||||
|
function getTemplateMarkup($template, $languageCode, $html = false) {
|
||||||
|
global $hesklang;
|
||||||
|
|
||||||
|
$templateUrl = urlencode($template);
|
||||||
|
$languageCodeUrl = urlencode($languageCode);
|
||||||
|
if ($html) {
|
||||||
|
$markup = '<a href="manage_email_templates.php?action=edit&template='.$templateUrl.'&language='.$languageCodeUrl.'&html=true">';
|
||||||
|
$markup .= '<i class="fa fa-html5" style="font-size: 1.5em" data-toggle="tooltip" title="'.$hesklang['edit_html_template'].'"></i>';
|
||||||
|
$markup .= '</a>';
|
||||||
|
return $markup;
|
||||||
|
} else {
|
||||||
|
$markup = '<a href="manage_email_templates.php?action=edit&template='.$templateUrl.'&language='.$languageCodeUrl.'&html=false">';
|
||||||
|
$markup .= '<i class="fa fa-file-text-o" style="font-size: 1.5em" data-toggle="tooltip" title="'.$hesklang['edit_plain_text_template'].'"></i>';
|
||||||
|
$markup .= '</a>';
|
||||||
|
return $markup;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function save() {
|
||||||
|
global $hesklang;
|
||||||
|
|
||||||
|
$filePath = HESK_PATH . 'language/'.$_POST['language'].'/emails/'.$_POST['template'];
|
||||||
|
if ($_POST['html'] == '1') {
|
||||||
|
$filePath = HESK_PATH . 'language/'.$_POST['language'].'/emails/html/'.$_POST['template'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$success = file_put_contents($filePath, $_POST['text']);
|
||||||
|
if ($success === false) {
|
||||||
|
hesk_process_messages($hesklang[''], 'manage_email_templates.php');
|
||||||
|
} else {
|
||||||
|
$message = sprintf($hesklang['email_template_saved'], $_POST['template']);
|
||||||
|
hesk_process_messages($message,'manage_email_templates.php','SUCCESS');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSpecialTagMap() {
|
||||||
|
global $hesk_settings, $modsForHesk_settings, $hesklang;
|
||||||
|
|
||||||
|
$map = array();
|
||||||
|
$map['%%NAME%%'] = $hesklang['customer_name'];
|
||||||
|
$map['%%EMAIL%%'] = $hesklang['customer_email'];
|
||||||
|
$map['%%SUBJECT%%'] = $hesklang['ticket_subject'];
|
||||||
|
$map['%%MESSAGE%%'] = $hesklang['ticket_message'];
|
||||||
|
$map['%%CREATED%%'] = $hesklang['ticket_created'];
|
||||||
|
$map['%%UPDATED%%'] = $hesklang['ticket_updated'];
|
||||||
|
$map['%%TRACK_ID%%'] = $hesklang['ticket_trackID'];
|
||||||
|
$map['%%TRACK_URL%%'] = $hesklang['ticket_url'];
|
||||||
|
$map['%%SITE_TITLE%%'] = $hesklang['wbst_title'];
|
||||||
|
$map['%%SITE_URL%%'] = $hesklang['wbst_url'];
|
||||||
|
$map['%%CATEGORY%%'] = $hesklang['ticket_category'];
|
||||||
|
$map['%%OWNER%%'] = $hesklang['ticket_owner'];
|
||||||
|
$map['%%PRIORITY%%'] = $hesklang['ticket_priority'];
|
||||||
|
$map['%%STATUS%%'] = $hesklang['ticket_status'];
|
||||||
|
|
||||||
|
$i = 1;
|
||||||
|
foreach ($hesk_settings['custom_fields'] as $key => $value) {
|
||||||
|
if ($value['use']) {
|
||||||
|
$uppercaseKey = strtoupper($key);
|
||||||
|
$map['%%'.$uppercaseKey.'%%'] = sprintf($hesklang['custom_field_x'], $i++);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $map;
|
||||||
|
}
|
@ -77,6 +77,7 @@ $hesk_settings['features'] = array(
|
|||||||
'can_ban_ips', /* User can ban IP addresses */
|
'can_ban_ips', /* User can ban IP addresses */
|
||||||
'can_unban_ips', /* User can delete IP bans. Also enables "can_ban_ips" */
|
'can_unban_ips', /* User can delete IP bans. Also enables "can_ban_ips" */
|
||||||
'can_service_msg', /* User can manage service messages shown in customer interface */
|
'can_service_msg', /* User can manage service messages shown in customer interface */
|
||||||
|
'can_man_email_tpl', /* User can manage email templates */
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Set default values */
|
/* Set default values */
|
||||||
|
@ -92,6 +92,16 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
<li role="presentation" class="active">
|
<li role="presentation" class="active">
|
||||||
<a href="#"><?php echo $hesklang['sm_title']; ?> <i class="fa fa-question-circle settingsquestionmark" onclick="javascript:alert('<?php echo hesk_makeJsString($hesklang['sm_intro']); ?>')"></i></a>
|
<a href="#"><?php echo $hesklang['sm_title']; ?> <i class="fa fa-question-circle settingsquestionmark" onclick="javascript:alert('<?php echo hesk_makeJsString($hesklang['sm_intro']); ?>')"></i></a>
|
||||||
</li>
|
</li>
|
||||||
|
<?php
|
||||||
|
// Show a link to email tpl management if user has permission to do so
|
||||||
|
if (hesk_checkPermission('can_man_email_tpl', 0)) {
|
||||||
|
echo '
|
||||||
|
<li role="presentation">
|
||||||
|
<a title="'.$hesklang['email_templates'].'" href="manage_email_templates.php">'.$hesklang['email_templates'].'</a>
|
||||||
|
</li>
|
||||||
|
';
|
||||||
|
}
|
||||||
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tab-content summaryList tabPadding">
|
<div class="tab-content summaryList tabPadding">
|
||||||
<script language="javascript" type="text/javascript"><!--
|
<script language="javascript" type="text/javascript"><!--
|
||||||
|
@ -390,3 +390,7 @@ button.dropdown-submit {
|
|||||||
max-width: 80px;
|
max-width: 80px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.plaintext-editor {
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
@ -735,6 +735,18 @@ function hesk_checkPermission($feature,$showerror=1) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($feature == 'can_manage_email_templates') {
|
||||||
|
if ($_SESSION['can_manage_email_templates']) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
if ($showerror) {
|
||||||
|
hesk_error($hesklang['no_permission'].'<p> </p><p align="center"><a href="index.php">'.$hesklang['click_login'].'</a>');
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Check other staff for permissions */
|
/* Check other staff for permissions */
|
||||||
if (strpos($_SESSION['heskprivileges'], $feature) === false)
|
if (strpos($_SESSION['heskprivileges'], $feature) === false)
|
||||||
{
|
{
|
||||||
|
@ -337,8 +337,8 @@ function execute210Scripts() {
|
|||||||
executeQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."settings` SET `Value` = '2.1.0' WHERE `Key` = 'modsForHeskVersion'");
|
executeQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."settings` SET `Value` = '2.1.0' WHERE `Key` = 'modsForHeskVersion'");
|
||||||
|
|
||||||
// Some old tables may not have been dropped during the 2.0.0 upgrade. Check and drop if necessary
|
// Some old tables may not have been dropped during the 2.0.0 upgrade. Check and drop if necessary
|
||||||
executeQuery("DROP TABLE IF EXISTS `".hesk_dbEscape($hesk['db_pfix'])."denied_ips`");
|
executeQuery("DROP TABLE IF EXISTS `".hesk_dbEscape($hesk_settings['db_pfix'])."denied_ips`");
|
||||||
executeQuery("DROP TABLE IF EXISTS `".hesk_dbEscape($hesk['db_pfix'])."denied_emails`");
|
executeQuery("DROP TABLE IF EXISTS `".hesk_dbEscape($hesk_settings['db_pfix'])."denied_emails`");
|
||||||
}
|
}
|
||||||
|
|
||||||
function execute210FileUpdate() {
|
function execute210FileUpdate() {
|
||||||
@ -396,3 +396,11 @@ $modsForHesk_settings[\'new_kb_article_visibility\'] = 0;';
|
|||||||
return file_put_contents(HESK_PATH.'modsForHesk_settings.inc.php', $file);
|
return file_put_contents(HESK_PATH.'modsForHesk_settings.inc.php', $file);
|
||||||
}
|
}
|
||||||
// END Version 2.1.1
|
// END Version 2.1.1
|
||||||
|
|
||||||
|
// BEGIN Version 2.2.0
|
||||||
|
function execute220Scripts() {
|
||||||
|
global $hesk_settings;
|
||||||
|
|
||||||
|
hesk_dbConnect();
|
||||||
|
executeQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."settings` SET `Value` = '2.2.0' WHERE `Key` = 'modsForHeskVersion'");
|
||||||
|
}
|
@ -1,10 +1,7 @@
|
|||||||
<p>Hello,</p>
|
<p>Hello,</p>
|
||||||
<p>A new support ticket has been moved to your category. Ticket details:</p>
|
<p>A new support ticket has been moved to your category. Ticket details:</p>
|
||||||
<p>Ticket subject: %%SUBJECT%%<br>
|
<p>Ticket subject: %%SUBJECT%%<br /> Tracking ID: %%TRACK_ID%%</p>
|
||||||
Tracking ID: %%TRACK_ID%%</p>
|
<p>You can manage this ticket here: %%TRACK_URL%%</p>
|
||||||
<p>You can manage this ticket here:
|
<p> </p>
|
||||||
%%TRACK_URL%%</p>
|
|
||||||
<br>
|
|
||||||
<p>Regards,</p>
|
<p>Regards,</p>
|
||||||
%%SITE_TITLE%% <br>
|
<p>%%SITE_TITLE%% <br /> %%SITE_URL%%</p>
|
||||||
%%SITE_URL%%
|
|
@ -21,6 +21,34 @@ $hesklang['_COLLATE']='utf8_unicode_ci';
|
|||||||
// This is the email break line that will be used in email piping
|
// This is the email break line that will be used in email piping
|
||||||
$hesklang['EMAIL_HR']='------ Reply above this line ------';
|
$hesklang['EMAIL_HR']='------ Reply above this line ------';
|
||||||
|
|
||||||
|
// 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 <code>%s</code>'; // %s: The name of the template file, then language name
|
||||||
|
$hesklang['editing_html_template'] = 'Editing HTML template <code>%s</code>'; // %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 <b>%s</b> 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 <b>%s</b> is not writable by HESK. Please CHMOD it to 0666.'; // %s: template file name
|
||||||
|
|
||||||
|
|
||||||
// ADDED OR MODIFIED IN Mods for HESK 2.1.1
|
// 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'] = 'Default Type for New Articles';
|
||||||
$hesklang['new_article_default_type_help'] = 'Choose the default type for new knowledgebase articles.';
|
$hesklang['new_article_default_type_help'] = 'Choose the default type for new knowledgebase articles.';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user